OpenEdv-开源电子网

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

USB Host兼容性

[复制链接]

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1298
金钱
1298
注册时间
2016-2-20
在线时间
321 小时
发表于 2016-5-10 16:43:04 | 显示全部楼层 |阅读模式
1金钱
STM32做主机,键盘插上Host口没有反应,经USB逻辑分析仪抓包发现SetUp少最后的一包USB_REQ_SET_INTERFACE数据。代码中没有找到发送USB_REQ_GET_INTERFACE的函数。问题是如果想要修改代码提高兼容性,怎么改?图中可以看到键盘枚举成功与失败的区别:在发出GET_INTERFACE的指令后发出数个NAK包,然后发出STALL,再发一包SET_INTERFACE就成功了;如果在发出GET_INTERFACE的指令后发出数个NAK包再发一包ACK,键盘上传STALL包,后面的SET_INTERFACE指令不再发出,枚举失败。
usbh_hid_core.c 里面的两处代码classReqStatus = USBH_Set_Idle (pdev, pphost, 100, 0);和phost->Control.setup.b.wLength.w = 100; 把官方的默认值0改为100提高了兼容性,为什么?还可以进一步提高兼容性吗?发现鼠标有只能上下移动和左右移动的,应该修改什么地方?

抓包.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-11 21:01:03 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 05:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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