You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32F103模拟多点触控HID设备触摸事件无响应问题求助

STM32F103多点触控HID设备触摸事件无响应问题

使用STM32F103开发板模拟多点触控HID设备,设备可被主机正确识别为触摸屏,但发送触摸事件后主机无对应动作。添加Contact ID支持多点触控前,单指功能正常。

BusHound快照说明

0x40开头的IN数据用于告知主机支持双指触控:
BusHound快照

部分报告描述符

0x05, 0x0d,       // USAGE_PAGE (Digitizers)
0x09, 0x04,       // USAGE (Touch Screen)
0xa1, 0x01,       // COLLECTION (Application)
0x85, 0x04,       // 报告ID (4)
0x09, 0x22,       //   USAGE (Finger)
0xa1, 0x00,       //   COLLECTION (Physical)
0x09, 0x42,       //     USAGE (Tip Switch)
0x75, 0x01,       //     REPORT_SIZE (1)
0x95, 0x01,       //     REPORT_COUNT (1)
0x81, 0x02,       //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)   
0x09, 0x32,       //     Usage (In Range)
0x09, 0x47,       //     Usage (Confidence)
0x75, 0x01,       //     REPORT_SIZE (1)
0x95, 0x02,       //     REPORT_COUNT (2)
0x81, 0x02,   //     Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)
0x09, 0x51,   //     Usage (Contact Identifier)
0x75, 0x05,   //     Report Size (5)
0x95, 0x01,   //     Report Count (1)
0x81, 0x02,       //     Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)
0x05, 0x01,       //     USAGE_PAGE (Generic Desktop)
0x09, 0x30,       //     USAGE (X)
0x09, 0x31,       //     USAGE (Y)
0x15, 0x00,       //     LOGICAL_MINIMUM (0)
0x26, 0xff, 0x0f, //     LOGICAL_MAXIMUM (4095)
0x35, 0x00,       //     PHYSICAL_MINIMUM (0)
0x46, 0xff, 0x0f, //     PHYSICAL_MAXIMUM (4095)
0x75, 0x10,       //     REPORT_SIZE (16)
0x95, 0x02,       //     REPORT_COUNT (2)
0x81, 0x02,       //     INPUT (Data,Var,Abs)
0xc0,             //   END_COLLECTION

0x05, 0x0D,        //   Usage Page (Digitizer)     
0x09, 0x22,       //   USAGE (Finger)     
0xa1, 0x00,       //   COLLECTION (Physical)     
0x09, 0x42,       //     USAGE (Tip Switch)     
0x75, 0x01,       //     REPORT_SIZE (1)     
0x95, 0x01,       //     REPORT_COUNT (1) 
0x81, 0x02,       //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)    
0x09, 0x32,      //     Usage (In Range) 
0x09, 0x47,       //     Usage (Confidence) 
0x75, 0x01,       //     REPORT_SIZE (1)     
0x95, 0x02,       //     REPORT_COUNT (2) 
0x81, 0x02,   //     Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 
0x09, 0x51,   //     Usage (Contact Identifier) 
0x75, 0x05,   //     Report Size (5) 
0x95, 0x01,   //     Report Count (1) 
0x81, 0x02,       //     Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 
0x05, 0x01,       //     USAGE_PAGE (Generic Desktop)     
0x09, 0x30,       //     USAGE (X)     
0x09, 0x31,       //     USAGE (Y)     
0x15, 0x00,       //     LOGICAL_MINIMUM (0)     
0x26, 0xff, 0x0f, //     LOGICAL_MAXIMUM (4095)     
0x35, 0x00,       //     PHYSICAL_MINIMUM (0)     
0x46, 0xff, 0x0f, //     PHYSICAL_MAXIMUM (4095)     
0x75, 0x10,       //     REPORT_SIZE (16)     
0x95, 0x02,       //     REPORT_COUNT (2)     
0x81, 0x02,       //     INPUT (Data,Var,Abs)     
0xc0,             //   END_COLLECTION            

0x05, 0x0d,   // USAGE_PAGE (Digitizers) 
0x09, 0x54,   // USAGE (Actual count) 
0x95, 0x01,   // REPORT_COUNT (1) 
0x75, 0x08,   // REPORT_SIZE (8) 
0x81, 0x02,   // INPUT (Data,Var,Abs)            
0x05, 0x0D,       //   Usage Page (Digitizer) 
0x85, 0x02,       //   Report ID (2) 
0x09, 0x55,       //   Usage (0x55) 
0x95, 0x01,   // REPORT_COUNT (1) 
0x75, 0x08,   // REPORT_SIZE (8) 
0xB1, 0x02,       //   Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)

事件数据结构

事件数据结构

排查方向

BusHound快照最后两行是STM32发送的触摸事件数据,可从以下几点排查:

  • 数据位对齐与顺序:确认Tip Switch、In Range、Confidence、Contact ID的位顺序是否与描述符定义一致,字节内高低位顺序是否符合HID规范(通常是高位在前)。
  • Actual Count字段值:报告中的Actual Count(0x54)需正确设置当前触摸点数,单指设1、双指设2,检查发送数据中该字段是否赋值正确。
  • Contact ID唯一性:每个触摸点的Contact ID必须唯一,触摸期间保持不变,释放后可复用,确保多触点ID不重复。
  • 报告ID匹配:发送触摸事件时必须携带正确的报告ID(0x04),检查BusHound中发送数据是否以0x04开头。
  • 状态位正确性:触摸时In Range和Tip Switch需设为1,释放时设为0,确认这些位的状态是否符合触摸状态。
  • 规范兼容性:对照USB HID Usage Tables v1.12中Touch Screen的示例描述符,检查自身描述符是否遗漏字段或顺序错误。

内容的提问来源于stack exchange,提问作者eaphone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:50:02