liudijiang 发表于 2019-1-25 17:18:07

请问怎么使用ST USB HOST 库的 USBH_Set_Report函数?

用安富莱的STM32F407开发板移植ST官方USB HOST库已经可以读取USB键盘的值

遇到的问题是,想设置键盘的CAPSLOCK和NUMLOCK等按键的指示灯,不知道怎么可以设置成功。请各位大神给个思路帮忙解决一下~~~

调试过程:
1、电脑端Bus Hound检测数据
      按键盘CAPSLOCK(大小写锁定键),PC收到 00,00,39, 00,00, 00, 00, 00
      紧接着 PC 发送数据 0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00,0x02

2、在ST的USB HOST库文件 usbh_hid_core.c 中
USBH_Status USBH_Set_Report (USB_OTG_CORE_HANDLE *pdev,
                                 USBH_HOST *phost,
                                    uint8_t reportType,
                                    uint8_t reportId,
                                    uint8_t reportLen,
                                    uint8_t* reportBuff)
{

phost->Control.setup.b.bmRequestType = USB_H2D | USB_REQ_RECIPIENT_INTERFACE |\
    USB_REQ_TYPE_CLASS;    //该值为0x21


phost->Control.setup.b.bRequest = USB_HID_SET_REPORT;//该值为0x09
phost->Control.setup.b.wValue.w = (reportType << 8 ) | reportId;//该值为0x2000, 尝试过大端小端问题

phost->Control.setup.b.wIndex.w = 0;
phost->Control.setup.b.wLength.w = reportLen;

return USBH_CtlReq(pdev, phost, reportBuff , reportLen );
}这个函数封装的内容应该是用来设置主机发给USB HID 设备的函数,但是调试过程中发现没有作用。

3、不知道是我搜索的关键词不对还是什么问题,百度和Google都找不到解决方案

麻烦各位提供个思路哈~~~~
谢谢



eric2013 发表于 2019-1-25 18:31:43

这个是ST搞的USB库文档,你看看能不能帮到你

http://www.armbbs.cn/forum.php?mod=viewthread&tid=17660&highlight=2.2

liudijiang 发表于 2019-1-29 11:02:02

eric2013 发表于 2019-1-25 18:31
这个是ST搞的USB库文档,你看看能不能帮到你

http://www.armbbs.cn/forum.php?mod=viewthread&tid=17 ...

谢谢~~~~我试试看
页: [1]
查看完整版本: 请问怎么使用ST USB HOST 库的 USBH_Set_Report函数?