serial terminal, custom baudrate

Miroslav Mraz mraz na seznam.cz
Úterý Prosinec 2 19:38:43 CET 2014


Protože je to známý problém, trochu jsem hledal, jak to obejít. Metod je 
víc, tohle funguje pro USB CDC:

#include <stdio.h>
#include <stropts.h>
#include <asm/termios.h>
// Kvůli závislosti hlaviček musí být v separátním souboru.
void SetBaud (int fd, int baud) {
   struct termios2 tio;
   if (ioctl(fd, TCGETS2, &tio) < 0) {
     fprintf(stderr, "TCGETS2 error\n");
     return;
   }
   tio.c_cflag &= ~CBAUD;
   tio.c_cflag |= BOTHER;
   tio.c_ispeed = baud;
   tio.c_ospeed = baud;
   if (ioctl(fd, TCSETS2, &tio) < 0) {
     fprintf(stderr, "TCSETS2 error\n");
   }
}
Otázka je, jak s tím dále naloží hardware, ale co jsem tak zkoumal, tak 
po USB jde ta proměnná baud správně. Asi to bude fungovat i pro Ftdi 
převodníky, bohužel tu žádný na vyzkoušení nemám.

Mrazík

Dne 2.12.2014 v 16:49 Petr Tomasek napsal(a):
>   b) co dovolí OS. Netuším, jak je to ve windows, ale např. klasické
> *nixové API má prostě natvrdo dané možné baudrate a když člověk chce
> cokoliv jiného, tak smůla.


Další informace o konferenci Hw-list