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