串口通信

来源:互联网 发布:ubuntu 批量安装 deb 编辑:程序博客网 时间:2024/06/08 00:49
串口通信默认的是阻塞的,所以需要根据个人需要调整成非阻塞情况。

串口通信有的时候数据会丢包啊什么的,所以要适当调整一下150那个延迟。

options.c_cflag |= CLOCAL | CREAD;

这一行是我写串口的时候忘记加进去了的,可以让串口读数据。

串口非阻塞的设置,有好多种办法,open的时候可以加参数,fcntl也可以,好像可以用select做,不过最后这个没做,大家如果需要的话可以再研究一下。

————————————————————————————
我在做串口这部分的时候,一端是QT4附带Qextserialport来做的,这时候发送数据的时候,开发的时候出现一点小问题,传送数据有问题,发不过去……然后我就在每次发送的数据末尾添加了一个'\n',如果大家碰到某些串口数据接受、发送问题的时候,可以先试下阻塞非阻塞,然后试下在发送数据末尾添加结束符啊什么的。

公司同事做的时候提供了另外一种办法,就是每次read的时候只读取1位长度的数据,这种情况的话就不要设置成非阻塞状态了,可以直接读取数据,然后按位判断,然后再做处理。我做的时候是设置成非阻塞状态然后每次都读MAXSIZE。

0 0
原创粉丝点击