串口通信

串口通信默认的是阻塞的,所以需要根据个人需要调整成非阻塞情况。

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

options.c_cflag |= CLOCAL | CREAD;

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值