B2400 2400波特
B9600 9600波特
B19200 19200波特
B38400 38400波特
B57600 57600波特
B115200 115200波特
8.3设置字符大小
设置字符的大小通过设置c_cflag标志位来实现的。
例如:
option.c_cflag &= ~CSIZE;
option.c_cflag |= CS7;
8.4设置奇偶校验
对于奇偶校验是需要手工设置的,常用的设置方式如下:
9.3设置输入奇偶选项
当激活c_cflag中的奇偶校验后,应该激活输入的奇偶校验。与之相关的标志有INPCK,IGNPAR,PARMRK和ISTRIP。一般是通过选择INPCK和ISTRIP激活检验和移除奇偶位。
例如:
option.c_iflag |= (INPCK | ISTRIP);
9.4设置软件控制流
软件控制流通过IXON,IXOFF和IXANY标志来设置
例如:
option.c_iflag |=(IXON | IXOFF | IXANY);
9.5选择预处理输出
通过OPOST标志来设置预处理的输出
例如:
option.c_oflag |= OPOST;
9.6选择原始数据输出
原始数据的输出通过设置c_oflag的OPOST标志
例如:
option.c_oflag &= ~OPOST;
9.7设置软件流控制字符
软件流控制字符是通过c_cc数组中的VSTART和VSTOP来设置的,一般来说,它们应该被设置城DC1(021八进制)和DC3(023八进制),分别表示ASCII码的XON和XOFF字符。
9.8设置读超时
c_cc数组中的VMIN指定了最少读取的字符数,如果设置为0,那么VTIME就指定了读取每个字符的等待时间。VTIME是以1/10秒为单位指定接收字符的超时时间的,如果VTIME设置为0,而端口没有用open或者fcntl设置为NONBLOCK,那么read操作将会阻塞不确定的时间。
十、参考资料
1.《Serial Programming Guide for POSIX Operating Systems》5th Edition Michael R.Sweet
2.《Linux 下串口编程入门》左锦
3.《Advanced Programming in the UNIX Environment》 W.Richard Stevens
4.《Linux Serial Programming HOWTO》
5.《Unix Systems Programming》Kay A.Robbins & Steven Robbins
6.《Linux Programming by Example》Arnold Robbins
7.《Linux Programmer's Manual》(e129)