I want to communicate over my serial port on Linux to a device with a non-standard-baud rate that is not defined in termios.h
.
I tried the "baud rate aliasing"-method from this post, but when I execute my C-program (I’ve named it "testprogram"), Linux says "testprogram sets custom speed on ttyS0. This is deprecated."
I did some search on Google, and it seems that there is another (newer?) method to change the baud rate to a non-standard-value: On http://sourceware.org/ml/libc-help/2009-06/msg00016.html the author says that the c_flag
of struct termios
must be OR’d with BOTHER (=CBAUDEX | B0)
.
With this method the baud rates are set directly in the c_ispeed
and c_ospeed
-members of the struct termios
. However, I don’t know how I use this method in my C program. Like the author said, there is no BOTHER
defined/available when I include termios.h
, so what should be done to set the baud rate this way?
How can I set the baud rate to a non-standard-value without changing the kernel?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…