F4 的 USB 向上位机送数据,总是打盹,求高手!

2019-07-21 00:52发布


STM32F4, USB虚拟串口方式,FS 模式,基本全用库函数,稍有改造。
F4 采集实时数据,每秒 250K 字节,先存缓冲区,然后上传给 PC,一边采集,一边上传,循环工作。

运行数十秒,在上传数十 M 数据以后,USB 会停滞一、两秒钟,导致一帧数据的最后一个数据包堵在里面,一帧数据迟迟不完成,随后采集的实时数据就爆仓。

不懂 USB 协议,求高手看看怎么回事!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
xuande
2019-07-21 03:36
如果发送无意义的数据,上位机用原子哥的串口助手,速度可以达到 831KB 每秒,
当然是采用统计的方法,还不知道有没有打盹的情况。

但现实应用,实时性就比较强了。
结果出现数据爆仓,几经周折,最后发现根本原因是 USB 不能顺畅地上传,我称之为打盹。

本来设计是 4uS 采集一个16位数据,一秒钟就是 500KB 数据量,
后来放慢到 1mS,250倍,却仍然爆仓,

实在很困惑了。

一周热门 更多>