触控笔(Pen Digitizer)HID报告描述符
2025-10-10
本文链接为:http://www.usbzh.com/article/detail-1593.html ,欢迎转载,转载请附上本文链接。
0x05, 0x0D, // Usage Page (Digitizer)
0x09, 0x01, // Usage (Digitizer)
0xA1, 0x01, // Collection (Application)
0x85, 0x01, // Report ID (1)
0x09, 0x02, // Usage (Pen)
0xA1, 0x00, // Collection (Physical)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x09, 0x42, // Usage (Tip Switch)
0x09, 0x44, // Usage (Barrel Switch)
0x09, 0x45, // Usage (Eraser)
0x09, 0x3C, // Usage (Invert)
0x95, 0x04, // Report Count (4)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01, // Report Count (1)
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x32, // Usage (In Range)
0x95, 0x01, // Report Count (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x02, // Report Count (2)
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x15, 0x00, // Logical Minimum (0)
0x35, 0x00, // Physical Minimum (0)
0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter)
0x55, 0x0F, // Unit Exponent (-1)
0x75, 0x10, // Report Size (16)
0x95, 0x01, // Report Count (1)
0x09, 0x30, // Usage (X)
0x26, 0x38, 0x63, // Logical Maximum (25400)
0x45, 0x73, // Physical Maximum (115)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x31, // Usage (Y)
0x26, 0x03, 0x3E, // Logical Maximum (15875)
0x45, 0x48, // Physical Maximum (72)
0x95, 0x01, // Report Count (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x65, 0x00, // Unit (None)
0x55, 0x00, // Unit Exponent (0)
0x05, 0x0D, // Usage Page (Digitizer)
0x09, 0x30, // Usage (Tip Pressure)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x1F, // Logical Maximum (8191)
0x75, 0x10, // Report Size (16)
0x95, 0x01, // Report Count (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x3D, // Usage (X Tilt)
0x16, 0xD8, 0xDC, // Logical Minimum (-9000)
0x26, 0x28, 0x23, // Logical Maximum (9000)
0x75, 0x10, // Report Size (16)
0x95, 0x01, // Report Count (1)
0x55, 0x0E, // Unit Exponent (-2)
0x65, 0x14, // Unit (System: English Rotation, Length: Centimeter)
0x36, 0xD8, 0xDC, // Physical Minimum (-9000)
0x46, 0x28, 0x23, // Physical Maximum (9000)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x3E, // Usage (Y Tilt)
0x16, 0xD8, 0xDC, // Logical Minimum (-9000)
0x26, 0x28, 0x23, // Logical Maximum (9000)
0x75, 0x10, // Report Size (16)
0x95, 0x01, // Report Count (1)
0x55, 0x0E, // Unit Exponent (-2)
0x65, 0x14, // Unit (System: English Rotation, Length: Centimeter)
0x36, 0xD8, 0xDC, // Physical Minimum (-9000)
0x46, 0x28, 0x23, // Physical Maximum (9000)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0, // End Collection
0xC0, // End Collection
触控笔描述符(Report ID 1)
从 0x05, 0x0D 到 0xC0, 0xC0 是描述触控笔功能的部分,使用的是报告 ID 1。
1.1. 基本描述
0x05, 0x0D // Usage Page (Digitizer): 使用 Digitizer(数位板/触控笔)功能页
0x09, 0x01 // Usage (Digitizer): 使用 Digitizer 功能
0xA1, 0x01 // Collection (Application): 开始一个应用集合
1.2. 开关功能(Tip Switch, Barrel Switch, Eraser, Invert)
0x85, 0x01 // Report ID (1): 报告 ID 为 1
0x09, 0x02 // Usage (Pen): 使用 Pen(触控笔)
0xA1, 0x00 // Collection (Physical): 开始一个物理集合
0x09, 0x42 // Usage (Tip Switch): 笔尖开关(即触摸状态)
0x09, 0x44 // Usage (Barrel Switch): 侧键开关
0x09, 0x45 // Usage (Eraser): 橡皮擦开关
0x09, 0x3C // Usage (Invert): 翻转检测
这部分定义了触控笔的各种开关,如笔尖、侧键、橡皮擦和翻转状态
1.3. 位置输入(X, Y 坐标)
0x05, 0x01 // Usage Page (Generic Desktop Ctrls): 通用桌面控制
0x09, 0x30 // Usage (X): X 轴坐标
0x09, 0x31 // Usage (Y): Y 轴坐标
0x26, 0x38, 0x63 // Logical Maximum (25400): X 坐标最大值为 25400
0x26, 0x03, 0x3E // Logical Maximum (15875): Y 坐标最大值为 15875
1.4. 压力与倾斜输入(Tip Pressure, X Tilt, Y Tilt)
0x09, 0x30 // Usage (Tip Pressure): 笔尖压力
0x26, 0xFF, 0x1F // Logical Maximum (8191): 压力最大值为 8191
0x09, 0x3D // Usage (X Tilt): X 轴倾斜
0x09, 0x3E // Usage (Y Tilt): Y 轴倾斜
0x16, 0xD8, 0xDC // Logical Minimum (-9000): 倾斜最小值 -9000
0x26, 0x28, 0x23 // Logical Maximum (9000): 倾斜最大值 9000
- 笔尖压力为 16 位输入,逻辑范围是 0-8191。
- 倾斜输入(X Tilt, Y Tilt)也为 16 位,范围为 -9000 到 9000。
报告 ID 1 是用于触控笔(Digitizer)的输入:
包含按钮状态(笔尖、侧键、橡皮擦)、X 和 Y 坐标、笔尖压力、X 和 Y 倾斜。
本文链接为:http://www.usbzh.com/article/detail-1593.html ,欢迎转载,转载请附上本文链接。原文转自:https://blog.csdn.net/lonelyxxyo/article/details/143719273
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936