![a75990eb8cff68b28ed29408e42b7666.png](https://i-blog.csdnimg.cn/blog_migrate/8b179a7b376e505ecafe709a9978530c.jpeg)
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](https://i-blog.csdnimg.cn/blog_migrate/261a23e1b212722c4ee60f96c04d8eb4.png)
单片机上传数据的视频
![7d9a9cef5804b3eb76b0b9b2f0391da3.png](https://i-blog.csdnimg.cn/blog_migrate/d92d5627682817da4c7a98208a133eff.jpeg)
思路:将"n"作为结束标志,以判断是否接收到一个完整的数据。
![1af568702097e6126edd48c5bce28003.png](https://i-blog.csdnimg.cn/blog_migrate/01d64c0222188c7a329c1f0dd5a7ee00.jpeg)
由上述思路——>具体实现代码:
//缓冲区
将上面的代码融合到培培哥串口上位机的程序中,得到了全新一代的串口上位机
![a8a0da443ffde4aaeb576362a29d2729.png](https://i-blog.csdnimg.cn/blog_migrate/a919702b844413a8c7fa7b9d5567c2d1.jpeg)
未完待续~
——20191212