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

USB HOST HID 如何从interrupt OUT 发送数据

[复制链接]
邓维安 提问时间:2021-12-30 16:52 / 已解决

1.我用的STM32F429 MCU

2.并通过cubemx生成了 USB HOST HID的鼠标键盘demo

3.调试demo可以正常工作

4.调试 以control传输控制键盘的灯光正常,我使用了这个函数:'USBH_StatusTypeDef USBH_HID_SetReport(USBH_HandleTypeDef phost, uint8_t reportType, uint8_t reportId, uint8_t reportBuff, uint8_t reportLen)'

问题:现在我有一个HID设备,我已经枚举成功,在interface中它有一个interrupt OUT传输,我用同样控制键盘的方法去操作OUT传输数据,现在尝试是不行的,我在HID的文件中没有找到适合interrup OUT的用户函数,请问我需要自已写个interrupt OUT函数吗?谢谢

实验用工具的方式发送传输数据是可行的:

image.png

但我用status = USBH_HID_SetReport (phost,2,2,Outreport1.HID_reportBuff,sizeof(UHID_SetOutReport));传输数据,但device并没有收到,

image.png

收藏 评论5 发布时间:2021-12-30 16:52

举报

5个回答
李康1202 回答时间:2021-12-30 17:13:20

老铁,USB调试工具给我发一下,QQ741040423,谢谢老铁!

邓维安 回答时间:2021-12-30 17:43:40

李康1202 发表于 2021-12-30 17:13
老铁,USB调试工具给我发一下,QQ741040423,谢谢老铁!

bushound.zip

bushound.zip

邓维安 回答时间:2022-1-4 17:30:06

已解决;

在usb HOST libray中有一个usbh_ioreq.c

ST官方给出了一个函数:USBH_InterruptSendData

枚举完成;直接调用就可以实现,但要注意发送的字节数和初始化的字节数不能溢出,如果report文件大于64byte,可以用for循环多次发送的的方式

/**

  • @brief USBH_InterruptSendData
  • Sends the data on Interrupt OUT Endpoint
    • @param phost: Host Handle
    • @param buff: Buffer pointer from where the data needs to be copied
    • @param length: Length of the data to be sent
    • @param pipe_num: Pipe Number
    • @retval USBH Status. / USBH_StatusTypeDef USBH_InterruptSendData(USBH_HandleTypeDef phost, uint8_t buff, uint16_t length, uint8_t pipe_num) { USBH_LL_SubmitURB(phost, / Driver handle / pipe_num, / Pipe index / 0U, / Direction : OUT / USBH_EP_INTERRUPT, / EP type / USBH_PID_DATA, / Type Data / buff, / data buffer / (uint16_t)length, / data length */ 0U); return USBH_OK; }
qoyiwei 回答时间:2022-2-17 18:50:05

邓维安 发表于 2022-1-4 17:30
已解决;</p>
<p>在usb HOST libray中有一个usbh_ioreq.c

[md]您好,我和你在做类似的项目,mcu也是stm32f429做host,键盘和鼠标都是可以上传数据的,修改相关地方后,可以实现自定义hid设备,上传数据没有什么问题,就是下发数据不对,也用了USBH_InterruptSendData和send_reportsend,都是不行,请问有什么调试方法吗?如果帮忙调试,可以有偿,或者麻烦您提供一下你的通信代码,麻烦了。

阿豪99 回答时间:2022-8-31 14:56:11
qoyiwei 发表于 2022-2-17 18:50
[md]您好,我和你在做类似的项目,mcu也是stm32f429做host,键盘和鼠标都是可以上传数据的,修改相关地方 ...

请问后来解决了嘛,同样遇到这个问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版