本帖最后由 RISCV29 于 2023-4-10 14:26 编辑
```
const u8 MOUSE_ReportDescriptor[MOUSE_SIZ_REPORT_DESC] =
{
//=============================================================================
//【鼠标】-顶层集合(报告ID=1,报告长度=6),描述符长度=58
0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x02, // Usage (Mouse)
0xA1, 0x01, // Collection (Application) 【通用桌面设备:鼠标】应用集合开始
0x09, 0x01, // Usage (Pointer) 指针设备
0xA1, 0x00, // Collection (Physical) 物理集合开始
0x85, 0x01, // Report ID (1) 报告ID =1
0x05, 0x09, // Usage Page (Buttons)用途页为【按键】
0x19, 0x01, // Usage Minimum (01) 用途最小值1
0x29, 0x03, // Usage Maximum (03)用途最大值3(1=左键,2=右键,3=示中键)
0x15, 0x00, // Logical Minimum (0) 逻辑最小值0
0x25, 0x01, // Logical Maximum (1) 逻辑最大值1
0x75, 0x01, // Report Size (1) 字段大小为1bit
0x95, 0x03, // Report Count (3) 这样的字段数量为3
0x81, 0x02, // Input (Data, Var, Abs)输入(变量,数值,绝对值)
0x75, 0x05, // Report Size (5)
0x95, 0x01, // Report Count (1) 填充5个bit,补足一个字节
0x81, 0x01, // Input (Constant) for padding
0x05, 0x01, // Usage Page (Generic Desktop) 用途页为【通用桌面】
0x09, 0x30, // Usage (X) 用途为X
0x09, 0x31, // Usage (Y) 用途为Y
0x15, 0x00, // Logical Minimum (0) 【逻辑最小值=0】
0x26, 0xff, 0x7f, // Logical_Maximum (32767) 【逻辑最大值=32767】
0x35, 0x00, // PHYSICAL_Minimum (0) 【物理最小值=0】
0x46, 0xff, 0x7f, // PHYSICAL_Maximum (32767) 【物理最大值=32767】
0x75, 0x10, // Report Size (16) 【16位量】
0x95, 0x02, // Report Count (2) 【这样的字段数量为2】
0x81, 0x02, // Input (Data, Var, Abs) 【输入(变量,数值,绝对值)】
0xC0, // End Collection (Physical) 物理集合结束
0xC0, // End Collection (Application) 应用集合结束
}; ```
网上有很多类似的例子,建议找一些抓包工具通过抓取数据进行分析
|