问答

汇集网友智慧,解决技术难题

21ic问答首页 - STM32F107的HOST驱动USB键盘的问题

usb键盘 STM32F107 os ck USBHOST

STM32F107的HOST驱动USB键盘的问题

wenfen2020-09-10
现在实现了STM32F107 USB HOST读取键盘的数据,但是USB键盘的大小切换键CAPS LOCK和NUM LOCK键的指示灯却不对应的亮灭。查资料说是,需要HOST给USB键盘发送数据,请问是怎么发送呢?
回答 +关注 10
3066人浏览 33人回答问题 分享 举报
33 个回答
  • 这个HID设备都是标准的命令,按照指示灯命令发就可以
  • 本帖最后由 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
  • 多谢大家讨论这么多哈,呵呵
  • 好像有标准的库函数吧
  • 楼主研究出来了吗?源码给我也玩一下,看看到底host怎么发数据控制键盘的。

  • 能够提供一下代码借鉴一下吗
  • LZ我也想知道0X03怎么来发送,现在是调用USBH_Set_Report来发送设置配置后,data自动发送的0x00,不知道怎么怎么修改使用USBH_CtlSendData函数发送0X03,谢谢啦
  • 发送的内容是在报告描述符内定义的
  • 能把你的STM32F107的HOST驱动USB键盘的程序发一份来参考参考一下吗

您需要登录后才可以回复 登录 | 注册