linux下的串口设置,包括波特率,数据位数,停止位的数目,等串行口设置主要是设置struct termios结构成员的价值。接下来,小编给你的Linux下的串口设置详细介绍。


串行通信是指利用传输线来传输数据的序列,其特点是通信线路简单。使用简单的电缆可以实现通信,降低成本。它适用于远程通讯,但慢传输应用。常用的串行端口RS-232-C接口(全称是DTE)和数据通讯设备(DCE),串行二进制数据交换接口技术标准。


设置串行属性的基本流程:


1。保存原始串口配置


为了安全起见,调试程序的方便,原来的串行端口的配置可以被保存,使用函数tcgetattr(FD,oldtio)。这个函数获取与FD指向对象相关的参数并将其保存在lodtio参考termios结构。这一功能可以测试是否配置是正确的,串行端口可用,等等。调试成功,函数返回0,失败返回1。


如果(tcgetattr(FD,oldtio)!= 0)


{


perror(setupserial 1);


返回- 1;


}


2。激活选项clocal和信用


clocal和信用是用于本地连接和验收启用,这两个选项的位掩码的活性。


newtio.c_cflag clocal信用| | =;





三.设置波特率


设置波特率的功能主要cfsetispeed和cfsetospeed。


Cfsetispeed(newtio,b115200);


Cfsetospeed(newtio,b115200);


一般用户需要设置输入和输出函数的波特率,当它们成功并失败1时,这些函数返回0。


4。设置字体大小


没有可用的功能,需要一个位掩码。通常,删除数据位中的位掩码,然后根据需要重置。


options.c_cflag = ~ csize; / *掩码字符大小位* /


options.c_cflag CS8 | =;


5。设置奇偶校验位


在c_cflag的检查点的激活使parenb标明是否校验是必需的,在c_iflag校验也被激活。在一个奇怪的检查的情况下,代码如下:


newtio.c_cflag parenb | =;


newtio.c_cflag | = parodd;


newtio.c_iflag | =(inpck iStrip |);


奇偶校验码如下所示:


newtio.c_iflag | =(inpck iStrip |);


newtio.c_cflag parenb | =;


newtio.c_cflag = ~ parood;


6。设置停止位


在c_cflag.if停止位1激活cstopb,清除的cstopb和cstopb是如果停止位0激活。以下是代码的停止位为1时:


newtio.c_cflag = ~ cstopb;


7。设置最小字符和等待时间


对接收字符和等待时间没有特殊要求时,可以设置为0:


newtio。c_cc {五} = 0;


newtio。c_cc { Vmin } = 0;


8。处理要写入的引用对象。


在串行端口复位,参考对象是之前写的再加工。调用函数tcflush(FD,queue_selector)是用来处理对象写参考,发送或接收但不读取数据,处理方法取决于该queue_selector价值。


queue_selector可能值:


TCIFLUSH:刷新收到的数据但不读


TCOFLUSH:刷新写入的数据但是不发送


TCIOLFLUSH:刷新收到的数据在同一时间没有阅读,并刷新写入的数据,而不把它