USB HID多媒体键盘描述符

报文描述符

/* USB 多媒体键盘HID描述符 */
/* HID Report Descriptor mediaboard */
const u8 mediaBoard_ReportDescriptor[] =
{
    0x05, 0x0C,             //  Usage Page (Consumer Devices)
    0x09, 0x01,             //  Usage (Consumer Control)
    0xA1, 0x01,             //  Collection (Application)
    0x85, REPORT_ID,        //      Report ID
    0x15, 0x00,             //      Logical Minimum (0)
    0x26, 0x3C, 0x02,       //      Logical Maximum (572)
    0x19, 0x00,             //      Usage Minimum (Undefined)
    0x2A, 0x3C, 0x02,       //      Usage Maximum (AC Format)
    0x75, 0x10,             //      Report Size (16)
    0x95, 0x01,             //      Report Count (1)
    0x81, 0x00,             //      Input (Data,Ary,Abs)
    0xC0                    //  End Collection   
}

报文说明

键盘发送给PC的数据每次3个字节

Byte0 Byte1 Byte2

定义分别是:

Byte0 --  Report ID  
Byte1~Byte2 -- 键值  

例如(假设Report ID等于c4):

按键:主页键(0x0223)
按下报文: c4 23 02
释放报文: c4 00 00

按键:后退键(0x0223)
按下报文: c4 23 02
释放报文: c4 00 00

按键:播放/暂停键(0x00CD)
按下报文: c4 CD 00
释放报文: c4 00 00

对于键码,HID和PS2的键盘有所不同,其它键码请参照USB HID to PS2 Scan Code Translation Table.pdf 的“Key Name”列和“HID Usage ID”列;
媒体键在 Usage Page =0xoc

  • 如果发送X键按下报文后不发送释放报文,则设备一直处于连按X键状态,值到发送释放报文或直接断开设备;
  • 如果发送X1键按下报文后不发送释放报文,而发送其他按键X2键按下报文,则X1键被释放,设备一直处于连按X2键状态,值到发送释放报文或直接断开设备;

 继续浏览关于 HIDUSB 的文章

 本文最后更新于 2021/03/01 15:39:32,可能因经年累月而与现状有所差异

 引用转载请注明: 落梧笔记 > 电子 > USB HID多媒体键盘描述符