从零开始学USB(二十一、USB接口HID类设备(三)_报表描述符Global类)

Global Item 用于描述一个操作( Main Item )所用到的数据格式,它可以改变一个 state table 的量, 这个 state table 的参数用于修饰 Main Item 。在不被重新赋值的情况下, Global Item 将会保持不变。 

 

Global item tag One-Byte Prefix (nn represents
size value)
Description
Usage Page 0000 01 nn 指定设备的功能 (06h,A0h,FFh)。 由于使用率为32位值,因此可以使用Usage Page项目通过设置后续用法的高16位来节省报表描述符中的空间。 定义为16位或更少的任何后续用法将被解释为使用者ID,并与Usage Page连接以形成32位Usage。
Logical Minimum 0001 01 nn 逻辑单元中的范围值。 这是变量或数组项将报告的最小值。 例如,报告x位置值从0到128的鼠标的逻辑最小值为0,逻辑最大值为128。
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
正确地将一个 USB 设备从 Audio 设备变成 Audio HID 设备需要修改设备描述符。具体来说,需要修改设备设备描述符HID 描述符设备描述符是一个包含设备信息的结构体,它描述了设备的厂商、产品、版本等信息。在将一个 USB 设备从 Audio 设备变成 Audio HID 设备时,需要修改设备描述符中的设备别(bDeviceClass)和设备别(bDeviceSubClass)。 HID 描述符是描述 HID 设备的结构体,它描述了 HID 设备的功能、报告格式等信息。在将一个 USB 设备从 Audio 设备变成 Audio HID 设备时,需要添加 HID 描述符,并正确地设置相应的参数,以便系统正确地识别和枚举 HID 设备。 具体的描述符结构和参数设置需要根据设备和需求进行修改,以下是一个示例代码,展示了如何将一个 USB 设备从 Audio 设备变成 Audio HID 设备: ```c // USB 设备描述符 const uint8_t usb_device_descriptor[] = { // ... 0x01, // bDeviceClass (Audio) 0x00, // bDeviceSubClass 0x00, // bDeviceProtocol // ... }; // HID 描述符 const uint8_t usb_hid_descriptor[] = { 0x09, // bLength 0x21, // bDescriptorType (HID) 0x01, 0x01, // bcdHID 0x00, // bCountryCode 0x01, // bNumDescriptors 0x22, // bDescriptorType[0] (HID Report) // ... }; // USB 设备初始化 void usb_device_init() { // ... usb_device_set_descriptor(usb_device_descriptor, sizeof(usb_device_descriptor)); usb_device_set_hid_descriptor(usb_hid_descriptor, sizeof(usb_hid_descriptor)); // ... } ``` 需要注意的是,具体的描述符结构和参数设置需要根据设备和需求进行修改,而且需要确保描述符中的参数设置正确,以便系统正确地识别和枚举 HID 设备

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的小刺猬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值