【媒体控制器】开源项目学习笔记(基于Arduino Micro开发板)

发布时间:2022-08-19 13:47

☑️ 首先说明:本项目基于Arduino Micro 开发板开发的,外设只用到了EC11E1534408无定位旋转编码器。

项目来源:【DIY】自制PC外设-媒体控制器,在英国_哔哩哔哩_bilibili

Github:GitHub - xuan25/HIDMediaController-ArduinoMicroPro

【媒体控制器】开源项目学习笔记(基于Arduino Micro开发板)_第1张图片


HID

Human interface device(HID),人体学接口设备。

HID 一般指 USB-HID 标准。

在USB协议官网上,给出了HID的文档:HID Usage Tables 1.3

关于键盘的报告描述符、鼠标的报告描述符,可以用官方网站提供的HID描述符工具(HID Descriptor tool)生成;还可以使用现成的报告描述符进行修改;HID协议和用途表文档中,也有很多现成的例子。

✔️ 关于HID的设备描述符,查阅了相关资料,做出总结。因为首次接触,难免会有错误!

    //Button
    0x05, 0x0c,                    // Usage Page (Consumer Devices)
    0x09, 0x01,                    // Usage (Consumer Control)
    
    0xa1, 0x01,                    // Collection (Application)
   
      0x85, 0x04,                    //   REPORT_ID (4)
      0x09, 0xe9,                    //   Usage (Volume Up)
      0x09, 0xea,                    //   Usage (Volume Down)
      0x09, 0xe2,                    //   Usage (Mute)            //静音
      0x09, 0xcd,                    //   Usage (Play)            //播放
      0x09, 0xb5,                    //   Usage (Next)
      0x09, 0xb6,                    //   Usage (Previous)
      0x15, 0x00,                    //   Logical Minimum (0)
      0x25, 0x01,                    //   Logical Maximum (1)
      0x75, 0x01,                    //   Report Size (1)
      0x95, 0x10,                    //   Report Count (10)
      0x81, 0x06,                    //   Input (Data, Variable, Relative)
    
    0xc0,                          // End Collection

描述符没有固定的长度,没有固定的数据类型,而是由条目(item)组成。一个条目占据一行。

短条目(大部分为短条目)构成:一个字节的前缀 + 可选的数据字节

前缀结构:

7 6 5 4 3 2 1 0
bTag bType bSize
  • bTag:表示该条目的功能。
  • bType:表示该条目的类型。0为主条目;1为全局条目;2为局部条目。
  • bSize:表示条目的数据字节数量。0~3分别表示1~4个字节。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号