久芯网

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

avatar 邓维安 提问时间: 2023-08-13 15:05: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函数吗?谢谢

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

USB HOST HID 如何从interrupt OUT 发送数据 [相关图片]

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

USB HOST HID 如何从interrupt OUT 发送数据 [相关图片]

5个回答
  • avatar 李康1202
    回答时间: 2023-08-13 15:37:11

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

  • avatar 邓维安
    回答时间: 2023-08-13 15:54:13
    李康1202 发表于 2021-12-30 17:13
    老铁,USB调试工具给我发一下,QQ741040423,谢谢老铁!

  • avatar 邓维安
    回答时间: 2023-08-13 16:15:05

    已解决; 在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; }

  • avatar qoyiwei
    回答时间: 2023-08-13 16:46:57
    邓维安 发表于 2022-1-4 17:30
    已解决;

    在usb HOST libray中有一个usbh_ioreq.c

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

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

    请问后来解决了嘛,同样遇到这个问题

会员中心 微信客服
客服
回到顶部