HID 类的设备在配置描述符中还需要一个 HID 描述符。它是一个类描述符,跟在接口描述符后面,HID描述符的结构如下所示
bLength:该描述符的长度。它的大小与该描述符中下级描述符的个数有关。例如,只有一个下级描述符时,总长度为:1 + 1 +2 + 1 + 1 + 1 + 2 = 9 字节
bDescriptorType:描述符的编号。HID 描述符的编号为 0x21
bcdHID:2 字节,是该设备所使用的 HID 协议的版本号。
bCountyCode:是设备所适用的国家
bNumDescriptors:下级描述符的数量,该值至少为 1,即至少要由一个下级描述符
bDescriptorType:下级描述符的类型。
bDescriptorLength:2 字节,下级描述符的长度。当有多个下级描述符时,bDescriptorType 和 bDescriptorLength 交替重复下去
USB 鼠标的 HID 描述符如下所示
0x09 bLength 字段。本 HID 描述符下只有一个下级描述符。所以长度为 9 字节
0x21 bDescriptorType 字段。HID描述符的编号为 0x21
0x11
0x01 bcdHID字段。本协议使用的 HID 协议。注意低字节在先
0x00 bCountyCode 字段。设备适用的国家代码
0x01 bNumDescriptors 字段。下级描述符的数目。我们只有一个报告描述符
0x22 bDescritporType 字段。下级描述符的类型,为报告描述符,编号为 0x22
0x40 bDescriptorLength 字段。下级描述符的长度。下级描述符为报告描述符
0x00