你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F4 HID设备 接收数据问题

[复制链接]
dsl1784 提问时间:2019-5-14 21:10 /
HI

STM32F4作为HOST,Device为HID协议但不是标准的鼠标键盘(只有IN 和 OUT EP),这个外设需要HOST发送命令后,才会上传数据,具体流程:
① Host->Dev(发送命令)
② Dev准备数据  
③ Host读取数据

使用官方的USB HOST库,版本V3.2.2,搭建工程鼠标和键盘正常工作,自己修改加了一个自定义支持的HID类型,主要是注册了OUT 和 IN 端口。
然后修改了USBH_HID_Process 支持发送数据,问题:
在HID类 USBH_HID_Process 中加入了 SEND状态机,通过USBH_InterruptSendData发送数据,发送成功。但是通过USBH_InterruptReceiveData不成功,分两种情况都不成功:
1、注释掉SOF定期轮询,只发调用一次USBH_InterruptReceiveData,收不到数据。
2、打开SOF定期读数据,会收到一次NACK,一次64字节(数据长度正确)的数据包(但是不能触发接收完成中断),下一次SOF再次触发USBH_InterruptReceiveData会导致HardFault_Handler。


这个HID外设用Libusb读取成功。
收藏 评论1 发布时间:2019-5-14 21:10

举报

1个回答
butterflyspring 回答时间:2019-6-10 17:15:14
一般来讲,首先看看增加端点后FIFO分配是否调整好。其次 看看枚举是否真正通过,SOF信号是否正常,最后再看通讯是否能工作。 因为这种通讯是异步通许,所以最好通过USB分析去确认是否真正完成
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版