![6638998d1fbc870d3b400735f973af43.png](https://i-blog.csdnimg.cn/blog_migrate/c89eb51dc2309a991a378e242813798b.jpeg)
1.使用到的模块
(1)康威电子STM32主控板
(2)康威电子ADS1256 24Bit ADC
(3)PC机:运行基于串口调试助手的上位机软件 host computer software
2.想实现的目的
![34bb56b8cc198ec0a8ddc3a9e8b0cac7.png](https://i-blog.csdnimg.cn/blog_migrate/e5934da93438de94578558571e184679.png)
单片机采集“指定数量(801条)”数据,通过串口反馈给PC机
3.出现的问题
一开始指定数量为41时,可以正常上传并且可以正常停止采集,但是一旦指定的数据量达到501,801的时候,单片机就停不下来了,会采集超过指定数量的数据,存到数据库中。
![e2003547d8dab7abb2cc371888e9604c.png](https://i-blog.csdnimg.cn/blog_migrate/a25643d1b4a4629f0532d0513d42206a.jpeg)
4.问题的解决
经过正点原子qq群里大佬的指点,才发现是自己变量的定义出错了
![7146502a3550b1ecb0dc1826daf20280.png](https://i-blog.csdnimg.cn/blog_migrate/40ea03fb34da851919feb9118ff0b144.png)
uint8_t 的取值范围是 0-256 ,那么我指定 501 或者 801 已经超过了它的取值范围,所以STM32才停不下来!!
目前已经修改了程序,STM32也可以正常停止采集数据了!!
![9904d8915655f334eaff3b0bd0958c2a.png](https://i-blog.csdnimg.cn/blog_migrate/3051847206aa0f947463874f2592ce49.png)
5.引发的思考
比如说我的变量 freq_num 已经到255了,那么再加一,它会变成什么呢?
据说会变成0 ( 这也可以解释为什么STM32停不下来了 ),具体的需要自己写个简单代码来验证。
6.目前的问题
当然STM32已经可以正常停止采集数据了,但是上传给Qt上位机后,会有数据丢失的现象,因为数据库中的数据数量没达到我指定的数量。
![294a918bda3bbcce9cb9d7fa39cabb94.png](https://i-blog.csdnimg.cn/blog_migrate/0cc59f338dde98c75e68b46147530bdb.jpeg)
需要进一步判断是哪个方面的问题,如
(1)STM32的数据发送有问题?
(2)Qt上位机没有及时接收?
(3)数据库操作问题?
可以先用XCOM来接收单片机返回的数据,看下是不是801条!!
Aug. 5. 2019
上面说的问题,我重新使用XCOM来接收STM32返回的数据,发现XCOM可以完整接收到STM32返回的数据,那么说明,目前出问题的地方还是我的Qt上位机!!
![cedf6891fa1e297bafde1d74280ca50c.png](https://i-blog.csdnimg.cn/blog_migrate/46f4d20cfc2abc08f9f0ac5b1a00fb82.jpeg)
之后,我又重新使用自己开发的Qt上位机采集数据,我这次突发奇想把接收窗口里的数据直接复制到一个txt文件中,再导入excel文件中,统计数据的个数,再与数据库中保存的数据进行比较,发现惊人的现象——两个地方的数据的数量居然不一样!
![86f10116402b48d061890d7bd3361860.png](https://i-blog.csdnimg.cn/blog_migrate/14b24d425b6fd14ad5f167e19db0be50.jpeg)
![357fc6c8a3c3bece045b62035d3c74aa.png](https://i-blog.csdnimg.cn/blog_migrate/ecb34c4d46d70da860c3640a46e29ed0.jpeg)
之后我又做了一次,还是出现类似的结果,说明确实是我在向数据库插入数据时,产生了遗漏!
![4c73b8dbd5b4cd89a6d852fd7d5ffbce.png](https://i-blog.csdnimg.cn/blog_migrate/8c37c3709812708b9cc83b1574713abd.jpeg)
那么,问题又进一步缩小范围!!