- 打卡等级:以坛为家II
- 打卡总天数:423
- 最近打卡:2025-05-01 07:10:25
已绑定手机
超级版主
DebugLab
- 积分
- 8343
|
简化版的绝对值鼠标HID描述符示例:
05 01 ; Usage Page (Generic Desktop)
09 02 ; Usage (Mouse)
A1 01 ; Collection (Application)
85 01 ; Report ID (1)
09 01 ; Usage (Pointer)
A1 00 ; Collection (Physical)
05 09 ; Usage Page (Button)
09 01 ; Usage (Button 1)
09 02 ; Usage (Button 2)
09 03 ; Usage (Button 3)
15 00 ; Logical Minimum (0)
25 01 ; Logical Maximum (1)
75 01 ; Report Size (1)
95 03 ; Report Count (3)
81 02 ; Input (Data, Var, Abs)
05 01 ; Usage Page (Generic Desktop)
09 01 ; Usage (Pointer)
75 08 ; Report Size (8)
95 02 ; Report Count (2)
81 01 ; Input (Const, Array)
C0 ; End Collection
C0 ; End Collection
05 01:表示通用桌面设备的使用页面。
09 02:表示鼠标设备的使用。
A1 01:开始一个应用级别的集合。
85 01:定义报告ID为1。
09 01:定义了一个指针类型的使用。
A1 00:开始一个物理级别的集合。
05 09:切换到按钮使用页面。
09 01:09 02, 09 03:分别定义了按钮1、2、3的使用。
15 00:和25 01:定义了逻辑最小值和最大值。
75 01:定义了报告大小为1位。
95 03:定义了报告计数为3,表示有3个按钮状态。
81 02:定义了一个输入报告,数据类型为变量,绝对定位。
05 01:回到通用桌面设备使用页面。
09 01:再次定义指针类型的使用。
75 08:定义了报告大小为8位(1字节)。
95 02:定义了报告计数为2,表示有两个坐标轴(X和Y)。
81 01:定义了一个输入报告,数据类型为常量,数组形式。
C0:结束集合。
char ReportDescriptor[42] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x02, // USAGE (Mouse)
0xa1, 0x01, // COLLECTION (Application)
0x85, 0x01, // REPORT_ID (1)
0x09, 0x01, // USAGE (Pointer)
0xa1, 0x00, // COLLECTION (Physical)
0x05, 0x09, // USAGE_PAGE (Button)
0x09, 0x01, // USAGE (Button 1)
0x09, 0x02, // USAGE (Button 2)
0x09, 0x03, // USAGE (Button 3)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x03, // REPORT_COUNT (3)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x01, // USAGE (Pointer)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x02, // REPORT_COUNT (2)
0x81, 0x01, // INPUT (Cnst,Ary,Abs)
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};
绝对值鼠标.hid
(254 Bytes, 下载次数: 74)
|
|