发新帖我要提问
12
返回列表
打印
[STM32F1]

STM32F107的HOST驱动USB键盘的问题

[复制链接]
楼主: wenfen
手机看帖
扫描二维码
随时随地手机跟帖
21
dingy| | 2020-9-11 20:08 | 只看该作者 回帖奖励 |倒序浏览
单片机自己分析报告描述符很麻烦,可以把键盘挂在电脑上用BUSHOUND抓数据知道收发数据格式。  然后单片机照着做就能读按键和写按键灯了。

使用特权

评论回复
22
pengf| | 2020-9-11 20:11 | 只看该作者
调用USBH_Set_Report函数给键盘发送消息

使用特权

评论回复
23
wenfen|  楼主 | 2020-9-11 20:15 | 只看该作者
前面OUT对应的0x03用哪个函数发送啊?

使用特权

评论回复
24
wenfen|  楼主 | 2020-9-11 20:19 | 只看该作者
前面OUT对应的0x03用哪个函数发送啊?

使用特权

评论回复
25
wenfen|  楼主 | 2020-9-11 20:24 | 只看该作者
我就是把键盘挂在电脑上,然后通过BUS BOUND监测到电脑发送上述数据后,键盘的指示灯对应的亮灭。不知道那个OUT 0x03用stm32 USB host库中的哪个函数发送。

使用特权

评论回复
26
xxrs| | 2020-9-11 20:24 | 只看该作者
能把你的STM32F107的HOST驱动USB键盘的程序发一份来参考参考一下吗

使用特权

评论回复
27
houcs| | 2020-9-11 20:27 | 只看该作者
发送的内容是在报告描述符内定义的

使用特权

评论回复
28
liuzaiy| | 2020-9-11 20:31 | 只看该作者
LZ我也想知道0X03怎么来发送,现在是调用USBH_Set_Report来发送设置配置后,data自动发送的0x00,不知道怎么怎么修改使用USBH_CtlSendData函数发送0X03,谢谢啦

使用特权

评论回复
29
yinxiangh| | 2020-9-11 20:38 | 只看该作者

能够提供一下代码借鉴一下吗

使用特权

评论回复
30
pangb| | 2020-9-11 20:42 | 只看该作者
楼主研究出来了吗?源码给我也玩一下,看看到底host怎么发数据控制键盘的。

使用特权

评论回复
31
dingy| | 2020-9-11 20:46 | 只看该作者
好像有标准的库函数吧

使用特权

评论回复
32
wenfen|  楼主 | 2020-9-11 20:54 | 只看该作者
多谢大家讨论这么多哈,呵呵

使用特权

评论回复
33
csdnpurple| | 2020-9-12 12:15 | 只看该作者
本帖最后由 csdnpurple 于 2020-9-12 12:18 编辑

如果你的驱动只适配某一种键盘楼上说的基本可以满足要求,如果适配任意类型的键盘则不可以,因为《Device Class Definition for Human Interface Devices (HID)》协议中键盘设备的按键报告和指示灯控制指令格式是由键盘设备任意配置的,也就是说不同的键盘的指令格式可能是不同的,host会让device报告相关的指令格式脚本,host根据脚本解析指令格式,否则会有兼容性问题。host应该具有解析如下脚本格式的能力(HID标准为准):
Usage Page (Generic Desktop),
Usage (Keyboard),
Report Count (0),
Collection (Application),
Usage Page(Key Codes),
Usage(0), ; key null
Usage Minimum(53h),
Usage Maximum(63h),
Logical Minimum (0),
Logical Maximum (17),
Report Size (8),
Report Count (3)
Input (Data, Array),
End Collection

使用特权

评论回复
34
lihui567| | 2020-9-12 16:27 | 只看该作者
这个HID设备都是标准的命令,按照指示灯命令发就可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则