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

2019-07-21 00:52发布


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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
八度空间
1楼-- · 2019-07-21 03:07
上传速度放慢点看下
xuande
2楼-- · 2019-07-21 03:36
如果发送无意义的数据,上位机用原子哥的串口助手,速度可以达到 831KB 每秒,
当然是采用统计的方法,还不知道有没有打盹的情况。

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

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

实在很困惑了。
正点原子
3楼-- · 2019-07-21 04:49
F103的USB虚拟串口搞过,F4的没试过,帮顶下
xuande
4楼-- · 2019-07-21 05:29
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 07:09
 精彩回答 2  元偷偷看……
aozima
6楼-- · 2019-07-21 11:04
USB的数据都是放在那等HOST来取。
如果HOST停顿一下就会断流

一周热门 更多>