WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-05-11 22:45:00

605364021
会员
注册时间: 2018-10-23
累计积分: 239

Qserialport类的使用

需要使用QT完成上位机与STM32完成串口数据的收发,但是我在板子使用QT进行串口数据收发测试的时候,使用write和readall收发数据时,会出现接收数据的不完成,以及发送一个数据至串口助手时出现多种数据换行情况。。。有人遇到这种问题?

离线

#2 2019-05-11 23:27:30

smartcar
会员
注册时间: 2018-02-19
累计积分: 282

Re: Qserialport类的使用

可能驱动为了效率, 不会收到一个字节就推一个字节给应用程序, 而是累积一定的数据或者一定的时间才推送.

离线

#3 2019-05-14 14:11:11

weiyaoxing
会员
注册时间: 2017-12-01
累计积分: 4

Re: Qserialport类的使用

readall函数有时候可能返回的是你stm32发送过来数据的一段,有时候可能是完整的帧,。你定义一个String来对接收的数据进行保存,然后再对String里面保存的数据使用正则表达式或者其他方法截取你的数据帧就可以

离线

#4 2019-05-14 15:01:52

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 80

Re: Qserialport类的使用

正常的,上位机不是实时的,接收数据需要自己拼帧,

实际上,stm32的接收也需要拼帧,

如果你写过可靠的串口程序,无论是上位机,还是stm32都是一样的:接收到的数据放到一个足够大的缓冲区(如环形队列等),然后从里面解析数据帧。

离线

页脚