HID设备数据格式

本文介绍了USB设备中的HID设备数据格式,包括鼠标和键盘发送数据的具体字节数及定义,提供了键值列表,帮助理解HID设备与HOST端的数据交互。
摘要由CSDN通过智能技术生成

HID设备数据格式


USB设备中,HID设备算是最简单的了.

鼠标发送给HOST端的数据每次4个字节,定义如下:

字节序 说明
字节0 [7]1表示Y坐标变化量超出255,
[6]1表示X坐标变化量超出255,
[5]1表示Y坐标变化为负值,
[4]1表示X坐标变化为负值,
[3]为1,
[2]1表示中键按下,
[1]1表示右键按下,
[0]1表示左键按下.
字节1 X坐标变化量尾数,参考字节0[6][4]
字节2 Y坐标变化量尾数,参考字节0[7][5]
字节3 滚轮变化


键盘发送给PC的数据每次8个字节,定义如下:

字节序 说明
字节0 [7]1表示 Right GUI按下,
[6]1表示Right Alt按下,
[5]1表示Right Shift按下,
[4]1表示Right Control按下,
[3]1表示Left GUI按下,
[2]1表示Left Alt按下,
[1]1表示Left Shift按下,
[0]1表示Left Control按下
字节1 为OEM保留,BIOS忽略这个字节,默认为0
字节2-7 普通按键键值


键值列表如下

第一列10进制键值,第二列16进制键值,第四列是按键  

0 00 Reserved (no event indicated)9 N/A √ √ √ 4/101/104  
1 01 Keyboard ErrorRollOver9 N/A √ √ √ 4/101/104  
2 02 Keyboard POSTFail9 N/A √ √ √ 4/101/104  
3 03 Keyboard ErrorUndefined9 N/A √ √ √ 4/101/104  
4 04 Keyboard a and A4 31 √ √ √ 4/101/104  
5 05 Keyboard b and B 50 √ √ √ 4/101/104  
6 06 Keyboard c and C4 48 √ √ √ 4/101/104  
7 07 Keyboard d and D 33 √ √ √ 4/101/104  
8 08 Keyboard e and E 19 √ √ √ 4/101/104  
9 09 Keyboard f and F 34 √ √ √ 4/101/104  
10 0A Keyboard g and G 35 √ √ √ 4/101/104  
11 0B Keyboard h and H 36 √ √ √ 4/101/104  
12 0C Keyboard i and I 24 √ √ √ 4/101/104  
13 0D Keyboard j and J 37 √ √ √ 4/101/104  
14 0E Keyboard k and K 38 √ √ √ 4/101/104  
15 0F Keyboard l and L 39 √ √ √ 4/101/104  
16 10 Keybo
USB HID设备是一种使用USB接口进行通信的设备,它可以通过发送和接收数据来实现和计算机的交互。为了读写USB HID设备数据,我们需要编写一个程序来实现这个功能。 首先,我们需要使用合适的编程语言和相关的库来开发这样一个程序。对于Windows系统,我们可以使用C#、C++或者Python等语言来编写程序;对于Linux系统,则可以选择C语言、Python等来实现。然后,我们需要选择一个合适的USB库,比如libusb,它提供了一些用于控制USB设备的函数和结构体。 接着,我们需要编写程序来进行USB设备的初始化和连接。一般来说,我们需要找到目标设备的vendor ID和product ID,然后使用相关函数来打开设备并进行数据的读写。 在程序运行的过程中,我们可以使用相关函数来读取设备发送的数据,也可以发送命令或者数据给设备。在读取数据时,我们需要根据设备的协议和数据格式进行解析和处理,以确保能正确地获取到设备发送的信息。 最后,我们需要进行错误处理和资源释放。当程序出现错误时,我们需要进行相应的处理,比如关闭设备,释放相关资源等,以确保程序的稳定性和可靠性。 总的来说,编写USB HID设备数据读写程序是一个需要考虑设备协议、数据格式等因素的复杂任务,但通过合适的编程语言和库的选择,以及认真的编程实现,我们可以成功地实现这一功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值