Wie stelle ich eine benutzerdefinierte Baudrate unter Linux ein?
Ich möchte über meine serielle Schnittstelle unter Linux mit einem Gerät kommunizieren, dessen Nicht-Standard-Baudrate nicht in festgelegt isttermios.h
.
Ich habe die "Baud Rate Aliasing" -Methode ausprobiertdieser Beitrag, aber wenn ich mein C-Programm ausführe (ich habe es "Testprogramm" genannt), sagt Linux"testprogram sets custom speed on ttyS0. This is deprecated."
Ich habe in Google etwas gesucht, und es scheint, dass es eine andere (neuere?) Methode gibt, um die Baudrate in einen Nicht-Standardwert zu ändern: Einhttp://sourceware.org/ml/libc-help/2009-06/msg00016.html Der Autor sagt, dass diec_flag
vonstruct termios
muss mit OR’d seinBOTHER (=CBAUDEX | B0)
. Bei dieser Methode werden die Baudraten direkt im eingestelltc_ispeed
undc_ospeed
-Mitglieder vonstruct termios
. Ich weiß jedoch nicht, wie ich diese Methode in meinem C-Programm verwende. Wie der Autor sagte, gibt es keineBOTHER
definiert / verfügbar, wenn ich einschließetermios.h
Was ist also zu tun, um die Baudrate auf diese Weise einzustellen?
Wie kann ich die Baudrate auf einen Nicht-Standardwert einstellen, ohne den Kernel zu ändern?