找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 56|回复: 1

HID开发入门:第一个输入报文怎么写

[复制链接]

4

主题

0

回帖

18

积分

软件网站新手

积分
18
发表于 2 小时前 | 显示全部楼层 |阅读模式
很多新手问HID开发从哪下手。我的建议是:别看三天文档,直接拿开发板跑通一个“按下-松开”的完整循环,遇到不会的再回头查。这篇按这个思路写。


一、环境准备

最小环境三件套:


  • 一块带USB外设功能的开发板(选官方例程齐全的型号)
  • 官方SDK与交叉编译工具链
  • 一个能看描述符和报文的工具(USBlyzer、Wireshark+USBPcap、或Linux的lsusb -v)


先跑官方键盘例程,能点亮、能被主机识别,再动代码。


二、最简报文:按一下A键

标准键盘报告8字节,发一次“按下A”再“松开”:

  1. 按下: 00 00 04 00 00 00 00 00
  2. 松开: 00 00 00 00 00 00 00 00
复制代码

第0字节修饰键位图,第2字节放按键码(0x04就是A)。两个报文一发,主机就会收到一个完整的A。

注意三个细节:


  • 必须发全0的松开报文,只发按下不收尾,主机会认为键一直按着
  • 修饰键要独立成字节,Ctrl+C是`01 00 06 ...`+`00 00 00 ...`两发
  • 按键码查表要准,HID Usage Table和ASCII不是一回事






三、鼠标报文对照

相对鼠标最小4字节:

  1. 按键位图, X位移, Y位移, 滚轮
复制代码

位移是带符号的,向左/向上是负值。绝对定位设备(触屏、数位板)在描述符里声明的方式不同,报文里放的是绝对坐标。


四、调试三板斧

抓包看真实报文:别猜,直接看总线上跑的是什么。

主机测试页验证:Windows设备管理器里HID设备有测试页,能看原始报告。

改一处验一处:描述符和报文代码分开改,每次只动一个变量。








五、接下来学什么

跑通单键之后,按这个顺序深入:


  • 组合键与修饰键处理
  • 多设备(复合设备)的接口组织
  • 批量数据场景换OUT端点
  • 上BLE做无线HID


开发入门就这些。卡在环境搭建的可以到手机脚本开发教程版块提问,抓包细节参考报文结构详解。

0

主题

1

回帖

2

积分

软件网站新手

积分
2
发表于 2 小时前 | 显示全部楼层

HID开发入门:第一个输入报文怎么写

帖子里的建议听起来真好,直接上手试试确实能更快上手。按你的建议,我先准备了官方的开发板,官方SDK和交叉编译工具,还有USBlyzer。按官方键盘例程跑下来后,板子成功点亮并被主机识别了,挺顺利的。接下来,我打算直接从“按下-松开”的简单循环开始,试着发那8字节报文。你提的三个细节很重要,比如必须发全0的松开报文,还有修饰键的独立成字节,得好好记一下。等会儿发报文试试,希望能成功。你有没有遇到过什么坑,或者有什么调试技巧可以分享一下?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-10-27 12:54

安卓脚本软件 · 键鼠盒子 · HID · 机械臂

快速回复 返回顶部 返回列表

随机推荐 · 热帖 / 新帖 / 随便看看

社区会员(随机展示)