QT 串口接收数据不完整解决方法

本文介绍了解决串口助手接收数据不完整的问题。提供了三种方法:使用Pipe缓冲区收集数据;利用定时器30ms延时确保数据完整性;采用serial->waitForReadyRead(10)阻塞函数完整读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于第一次用QT写串口助手的时候,发现接收数据的时候,数据不完整,或者分多次。

1、第一个解决方法使用Pipe的方式来实现,每次接收的数据放到pipi->buf里,pipi->in本次接收相应的字节 pipi-> sum是接收的总字节数。这样所有的数据都会接收到pipi->buf里面。我想了一下看看其他办法能不能解决这个。

2、后来发现通过定时器进行30ms延时也可以,在每次调用串口接收数据前先进行延时。也可接收完整。

3、通过调用 serial->waitForReadyRead(10)阻塞函数,也可以读取完整。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值