没有办法保证,一次发4个数据,一次就一定能收到4个数据,应该是buffer造成的。 recv是时候自己计算收到了多少个字节,接收完一个包后,再处理。
串口数据是没问题的,串口数据传输基本上是已中断形式实现的,每次传到应用层是字节数不一定。可理解成一个数据流。在接收端要根据组帧通信协议去解析才行。网上很多源码
数据是完整的啊!只是你分了两次显示出来。因为串口的数据就是一个流,没有分帧。所以你感觉数据不完整。如果你需要的话,需要定义一个帧格式,有同步头信息。你先把所接收到的数据保存到一个环形buffer里面,然后固定每次从环形buffer里面读取一帧出来。 而且串口数据确实可能出现错误,如果发现帧不完整,还需要对数据进行同步
23,118
社区成员
74,507
社区内容
加载中
试试用AI创作助手写篇文章吧