OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1501|回复: 3

关于STM32F411 USB HID开发遇到问题及避坑建议

[复制链接]

45

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1109
金钱
1109
注册时间
2016-3-25
在线时间
360 小时
发表于 2023-10-8 11:26:52 | 显示全部楼层 |阅读模式
      最近公司开发产品用到Zigbee协调器,之前的方案是用Zigbee模组+CH340与PC端通信。每次打开需要进行串口配置,后来改成自自动扫描电脑可以用串口的每个端口并进行通信,正确回复的端口认为是协调器设备。但是客户反馈体验不好,因为有协调器有两个版本,这两个版本的波特率又是固定且不一样,这样有可能需要扫描两次,导致PC软件启动时间太长。

     现在接收改善,想到了用STM32来开发,实现hid来代替原有的串口。在STM32和PC测试软件开发顺利(出差期间用的自己的笔记本开发),回到公司PC测试软件工程拷贝到台式电脑上,发现USB通信丢包非常严重,不管USB插主机前面还是后面都是同样情况。经过反复测试确定是USB接口原因导致的丢包。

下图是不同电脑测试的数据结果。(STM32 USB配置描述符里配置的轮询周期为1ms)

所以建议在用STM32开发hid时,先要确定电脑的USB接口速率是否达标,不然会一直以为自己的程序有问题。
台式-前面板.png
台式-背面主板.png
笔记本2.png
笔记本.png
代写STM32各类驱动,DEMO程序
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2023-10-8 11:58:35 | 显示全部楼层

测试USB虚拟串口也会有类似现象,串口助手软件的表现会不一样,有时候还要想办法关闭数据内容的显示功能,只计数。



回复 支持 反对

使用道具 举报

13

主题

166

帖子

0

精华

高级会员

Rank: 4

积分
791
金钱
791
注册时间
2018-12-19
在线时间
163 小时
发表于 2023-10-9 09:10:08 | 显示全部楼层
现在的电脑USB接口速度肯定比单片机的USB接口速度快,数据丢包是程序逻辑没有处理好
回复 支持 反对

使用道具 举报

45

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1109
金钱
1109
注册时间
2016-3-25
在线时间
360 小时
 楼主| 发表于 2023-10-9 21:31:54 | 显示全部楼层
854278507 发表于 2023-10-9 09:10
现在的电脑USB接口速度肯定比单片机的USB接口速度快,数据丢包是程序逻辑没有处理好

同一个核心板,同样的PC测试软件,一个包严重,另一个没有丢。我目前只能是怀疑是电脑USB接口差异导致的。不是到这个逻辑严谨不
代写STM32各类驱动,DEMO程序
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 07:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表