STM32F429-USB host接串口获取数据问题

2019-07-20 04:54发布

本帖最后由 peng501 于 2018-6-12 17:13 编辑

各位大侠,你们好!我在用阿波罗STM32F4开发板开发程序,CPU是F429

我把教程中USB Slave虚拟串口的程序改成USB host,通过一个USB转串口与一个装置通信。
现在已经能正常通过USB接收和发送数据。
USB接上后每次接收到的长度都是64字节,但是接收有问题如下:
1.开始接收的约10帧数据正常,未出现丢数据。
2.后续的数据根据协议分析,每次丢失约20字节。
3.后续帧数据开头应有两个C2,但是只有一个C2。
4.数据最后一个字节不应为C2,但是却是C2。

没什么头绪,向各位大神求助。
数据打印出来见下图:
前几帧
前几帧.PNG

后续
后续.PNG
源码见附件,谢谢! 20180612-SRC.rar (2.91 MB, 下载次数: 313) 2018-6-12 17:12 上传 点击文件名下载附件


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
peng501
1楼-- · 2019-07-20 05:02
应该是CPU处理速度跟不上,串口发送数据本来时间间隔10ms,改成50ms就不会丢数据了
xuande
2楼-- · 2019-07-20 09:56
 精彩回答 2  元偷偷看……
peng501
3楼-- · 2019-07-20 12:17
 精彩回答 2  元偷偷看……
xuande
4楼-- · 2019-07-20 15:59
peng501 发表于 2018-6-12 17:08
把USB接收的原始数据打出来就有问题了,所以现在比较迷茫


“打出来”,是用你自己的串口吗?
我意思是,自己的串口也要抛开。

另外注意64字节问题。


peng501
5楼-- · 2019-07-20 17:31
xuande 发表于 2018-6-12 17:12
“打出来”,是用你自己的串口吗?
我意思是,自己的串口也要抛开。

“打出来”是说printf,输出到连电脑的串口
自己的串口抛开那要把数据输出到屏幕上吗?
一次接收64字节可以修改吗?之前尝试改大接收缓存,结果一样
peng501
6楼-- · 2019-07-20 20:23
 精彩回答 2  元偷偷看……

一周热门 更多>