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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版