您尚未登录。

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

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Qserialport类的使用

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

离线

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

smartcar
会员
注册时间: 2018-02-19
已发帖子: 735
积分: 735

Re: Qserialport类的使用

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

离线

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

weiyaoxing
会员
注册时间: 2017-12-01
已发帖子: 16
积分: 11

Re: Qserialport类的使用

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

离线

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

Jmhh247
会员
注册时间: 2018-12-21
已发帖子: 262
积分: 262

Re: Qserialport类的使用

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

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

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

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn