(fixed) Erfahrungen mit \dev\ttyUSB0 (Uebertragungsfehler)
-
Hallo Zusammen,
hat jemand Erfahrungen mit der Programmierung
einem seriellen USB Wandler (RS232->USB).Bei mir gehen Zeichen verloren ...
Ursache sind die Termios Flag.
Derzeit fehlt mir nur noch das Steuerzeichen STX (0x2).
Dies wird derzeit nicht gesendet. Hier scheinen einige im Internet den Begriff der Raw Datenübertragung falsch zu verstehen. Raw bedeutet auch 0 und andere Steuerzeichen.
Hier meine derzeitige Termios Configuration:
/* save old flags */ old_flags = term_attr.c_lflag; cfsetispeed(&term_attr, TERM_SPEED); cfsetospeed(&term_attr, TERM_SPEED); cfmakeraw(&term_attr); term_attr.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON | IUCLC | INLCR| IXANY ); /* output modes - clear giving: no post processing such as NL to CR+NL */ term_attr.c_oflag &= ~(OPOST|OLCUC|ONLCR|OCRNL|ONLRET|OFDEL); /* control modes - set 8 bit chars */ term_attr.c_cflag |= (CS8); /* local modes - clear giving: echoing off, canonical off (no erase with backspace, ^U,...), no extended functions, no signal chars (^Z,^C) */ term_attr.c_lflag &= ~(ECHO | ECHOE | ICANON | IEXTEN | ISIG); term_attr.c_cflag |= CRTSCTS; // using flow control via CTS/RTS
Mit dieser Konfiguration werden keine Steuerzeichen, wie STX oder DLE mehr gefiltert. Hierbei wurde dem Programm immer eine 0 als Zeichen gegeben.
Der Aufruf cfmakeraw(&term_attr); ist nicht richtig. Habe mir aber nicht die
Mühe gemacht, welche Definition hinzugefügt werden müsste und habe alle laut Doc. welche mir in die Suppe spucken könnten in die Konfiguration aufgenommen.
Gruss