a75990eb8cff68b28ed29408e42b7666.png

1. 相关文章汇总

(1)QT解决串口数据接收不完整问题 (貌似贴出的代码可以存下串口接受的全部数据)

(2)<QT障碍之路>qt中使用串口类接收数据不完整

(3)Qt5.7串口接收数据不完整

因为串口本来就不是一次接收完数据,接受数据时需要判断!

(4)qt5信息提示框QMessageBox用法

(5)《用QT做点什么》-3-QT串口开发入门(上) (B站视频教程)

(6)QByteArray使用方法举例

(7)Qt 字符串截取分割

(8)QT中foreach的使用

(9)c++: c++ 字符串解析

(10)【STM32】使用keil提供的JSON库——Jansson

(11)STM32F103C8T6+cJSON 妈妈再也不用担心我的串口协议了

(12)QByteArray详解

(13)Qt串口通信接收数据不完整的解决方法

(14)王超:Qt小项目之串口助手控制LED

(15)郭凤贺:Qt 多线程串口调试助手

尤其是下面这篇文章,建议精读!

Qt串口通信接收数据不完整的解决方法 (灿哥哥的博文,208万+的访问量)

2. 最终解决

在此先要感谢CSDN上认识的湖南大学计算机院的大佬!

分析:单片机在发送完每条完整的数据后,都会发送一个 "rn",那么"n"可以看作结束标志

ebe025b026bd9d48afdc0eca2ef89e45.png
单片机在每条数据的最后发送的&quot;rn&quot;

单片机上传数据的视频

7d9a9cef5804b3eb76b0b9b2f0391da3.png
单片机每条完整的数据包含5个数https://www.zhihu.com/video/1188488474184073216

思路:将"n"作为结束标志,以判断是否接收到一个完整的数据。

1af568702097e6126edd48c5bce28003.png

由上述思路——>具体实现代码:

//缓冲区

将上面的代码融合到培培哥串口上位机的程序中,得到了全新一代的串口上位机

a8a0da443ffde4aaeb576362a29d2729.png
接收到完整的5个数据https://www.zhihu.com/video/1188504947413704704

未完待续~

——20191212

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐