需要使用QT完成上位机与STM32完成串口数据的收发,但是我在板子使用QT进行串口数据收发测试的时候,使用write和readall收发数据时,会出现接收数据的不完成,以及发送一个数据至串口助手时出现多种数据换行情况。。。有人遇到这种问题?
离线
可能驱动为了效率, 不会收到一个字节就推一个字节给应用程序, 而是累积一定的数据或者一定的时间才推送.
离线
readall函数有时候可能返回的是你stm32发送过来数据的一段,有时候可能是完整的帧,。你定义一个String来对接收的数据进行保存,然后再对String里面保存的数据使用正则表达式或者其他方法截取你的数据帧就可以
离线
正常的,上位机不是实时的,接收数据需要自己拼帧,
实际上,stm32的接收也需要拼帧,
如果你写过可靠的串口程序,无论是上位机,还是stm32都是一样的:接收到的数据放到一个足够大的缓冲区(如环形队列等),然后从里面解析数据帧。
离线