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

微控制器实现笔记本键盘:求禁用触摸板/飞行模式的USB HID按键码

问题描述

我正在基于微控制器实现笔记本键盘功能,但部分Fn功能按键对应的USB HID Keycode无法找到。USB协议仅定义了亮度调节、音量控制、媒体按键等组合码,还需获取禁用触摸板、开启飞行模式的相关USB码,恳请告知获取渠道。

当前使用的USB HID描述符
0x05, 0x01,                    //   USAGE_PAGE (Generic Desktop)
0x09, 0x06,                    //   USAGE (Keyboard)
0xa1, 0x01,                    //   COLLECTION (Application)
0x85, 0x01,                    //   Report ID (1)
0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
0x19, 0xe0,                    //   USAGE_MINIMUM (Keyboard LeftControl)
0x29, 0xe7,                    //   USAGE_MAXIMUM (Keyboard Right GUI)
0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
0x75, 0x01,                    //   REPORT_SIZE (1)
0x95, 0x08,                    //   REPORT_COUNT (8)
0x81, 0x02,                    //   INPUT (Data,Var,Abs)
0x95, 0x01,                    //   REPORT_COUNT (1)
0x75, 0x08,                    //   REPORT_SIZE (8)
0x81, 0x03,                    //   INPUT (Cnst,Var,Abs)
0x95, 0x05,                    //   REPORT_COUNT (5)
0x75, 0x01,                    //   REPORT_SIZE (1)
0x05, 0x08,                    //   USAGE_PAGE (LEDs)
0x19, 0x01,                    //   USAGE_MINIMUM (Num Lock)
0x29, 0x05,                    //   USAGE_MAXIMUM (Kana)
0x91, 0x02,                    //   OUTPUT (Data,Var,Abs)
0x95, 0x01,                    //   REPORT_COUNT (1)
0x75, 0x03,                    //   REPORT_SIZE (3)
0x91, 0x03,                    //   OUTPUT (Cnst,Var,Abs)
0x95, 0x06,                    //   REPORT_COUNT (6)
0x75, 0x08,                    //   REPORT_SIZE (8)
0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
0x25, 0x65,                    //   LOGICAL_MAXIMUM (101)
0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
0x19, 0x00,                    //   USAGE_MINIMUM (Reserved (no event indicated))
0x29, 0x65,                    //   USAGE_MAXIMUM (Keyboard Application)
0x81, 0x00,                    //   INPUT (Data,Ary,Abs)
0xc0,                          //   END_COLLECTION 65
0x05, 0x0C,                    //   Usage Page (Consumer)
0x09, 0x01,                    //   Usage (Consumer Control)
0xA1, 0x01,                    //   Collection (Application)
0x85, 0x02,                    //   Report ID (2)
0x05, 0x0C,                    //   Usage Page (Consumer)
0x15, 0x00,                    //   Logical Minimum (0)
0x25, 0x01,                    //   Logical Maximum (1)
0x75, 0x01,                    //   Report Size (1)
0x95, 0x08,                    //   Report Count (8)
0x09, 0x6F,                    //   Brightness Increment
0x09, 0x70,                    //   Brightness Decrement
0x09, 0xB8,                    //   Usage (Eject)
0x09, 0xCD,                    //   Usage (Play/Pause)
0x09, 0xE2,                    //   Usage (Mute)
0x09, 0xE9,                    //   Usage (Volume Increment)
0x09, 0xEA,                    //   Usage (Volume Decrement)
0x81, 0x02,                    //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,                          //   End Collection
获取特殊Fn键HID码的渠道
  • 官方HID使用手册:查阅USB-IF发布的《HID Usage Tables》文档,飞行模式可关注Consumer Page (0x0C)下的Wireless Radio Controls子项(对应Usage码0x00C0-0x00DF);禁用触摸板多为厂商自定义码,需结合目标设备的原厂键盘HID规范。
  • 抓包分析原厂键盘:用USB抓包工具捕获原厂笔记本键盘按下目标Fn组合键时的HID报告,直接提取对应的Usage码和报告格式,这是最适配目标设备的方法。
  • 社区逆向资源:在嵌入式或键盘DIY社区搜索同型号笔记本键盘的逆向记录,很多开发者会分享提取的特殊键码和描述符修改方案。
  • 厂商技术文档:部分笔记本厂商会在开发者支持页面公开自家键盘的HID协议细节,可查找对应型号的规格书获取自定义码信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:20:26