用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都找不到解决方案
麻烦各位提供个思路哈~~~~
谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>