关于USBHID协议以及鼠标键盘描述符的解释【转】
转自:https://blog.csdn.net/jiujiujiuqiuqiuqiu/article/details/47277685
一.HID设备识别
二.报告描述符
三.鼠标和键盘的报告描述符
- 0x05,0x01,// Global Generic Desktop
- 0x09,0x06,// Local KeyBoard
- 0xA1,0x01,// Main app collection
- 0x05,0x07,// Global KeyBoard
- //////////////////////////////////第1字节
- 0x19,0xe0,// Local Usage Min (KeyBoard LeftControl)
- 0x29,0xe7,// Local Usage Max (KeyBoard Right GUI)
- 0x15,0x00,// Global Logical Min
- 0x25,0x01,// Global Logical Max
- 0x95,0x08,// Global ReportCount
- 0x75,0x01,// Global ReportSize
- 0x81,0x02,// Main Input(Data,Var,Abs)
- //////////////////////////////////第2字节
- 0x95,0x01,// Global ReportCount
- 0x75,0x08,// Global ReportSize
- 0x81,0x03,// Main Input(Cnst,Var,Abs)
- //////////////////////////////////第3-8字节
- 0x95,0x06,// Global ReportCount
- 0x75,0x08,// Global ReportSize
- 0x15,0x00,// Global Logical Min
- 0x26,0xff,0x00,//Global Logical Max
- 0x19,0x00,// Local Usage Min
- 0x29,0x65,// Local Usage Max
- 0x81,0x00,// Main Output(Data,Ary,Abs)
- ////////////////////////////////1字节输出报告
- 0x15,0x00,// Global Logical Min
- 0x25,0x01,// Global Logical Max
- 0x95,0x05,// Global ReportCount
- 0x75,0x01,// Global ReportSize
- 0x05,0x08,// Global LED
- 0x19,0x01,// Local Usage Min
- 0x29,0x05,// Local Usage Max
- 0x91,0x02,// Main Output(Data,Var,Abs)
- ////////////////////////////////补足上面变成1个字节
- 0x95,0x01,// Global ReportCount
- 0x75,0x03,// Global ReportSize
- 0x91,0x03,// Main Output(Cnst,Var,Abs)
- 0xc0 // Main End collection
- 0x05,0x01, // Global Generic Desktop
- 0x09,0x02, // Local Mouse
- 0xa1,0x01, // Main app collection
- 0x09,0x01, // Local Pointer
- 0xa1,0x00, // Main phy collection
- 0x95,0x03, // Global ReportCount
- 0x75,0x01, // Global ReportSize
- 0x05,0x09, // Global Button
- 0x19,0x01, // Local Usage Min
- 0x29,0x03, // Local Usage Max
- 0x15,0x00, // Global Logical Min
- 0x25,0x01, // Global Logical Max
- 0x81,0x02, // Main Input(Data,Var,Abs)
- 0x95,0x01, // Global ReportCount
- 0x75,0x05, // Global ReportSize
- 0x81,0x03, // Main Input(Cnsr,Var,Abs)
- 0x95,0x03,0x75,0x08, // Global ReportCount Global ReportSize
- 0x05,0x01, // Global Generic Desktip
- 0x09,0x30, // Local X
- 0x09,0x31, // Local Y
- 0x09,0x38, // Locak Wheel
- 0x15,0x81, // Global Logical Min
- 0x25,0x7f, // Global Logical Max
- 0x81,0x06, // Main Input(Data,Var,Rel)
- 0xc0, // Main End collection
- 0xc0 // Main End collection
鼠标描述符有4字节输入报告。第1个字节前3位表示左右中三键,后面3个字节分别表示X轴,Y轴,滑轮。
关于USBHID协议以及鼠标键盘描述符的解释【转】的更多相关文章
- USB学习小记-HID类键盘的报告描述符的理解
前言 断断续续的学习了将近三个月,才把USB的HID类搞明白,速度真是够慢的.利用晚上+周末的时间学习自己的东西确实是必要的,不过效率是有点低,以后要更专注一些才行,希望自己能做到吧. 在学习过程中, ...
- USB协议-USB的描述符及其之间的关系
USB只是一个总线,只提供一个数据通路而已.USB总线驱动程序并不知道一个设备具体如何操作,有哪些行为.具体的一个设备实现什么功能,要由设备自己来决定.那么,USB主机是如何知道一个设备的功能以及行为 ...
- USB HID报告及报告描述符简介
在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等.USB报告描述符(Report Descriptor)是HID ...
- USB描述符解析-->枚举.
枚举可以理解为主机按不定的顺序向USB设备讨要设备信息,好给它分配资源,若枚举不成功,就放弃分配资源,免得浪费资源.一般都是使用中断传输方式通信. 常用的描述符有以下几种:01H.设备描述符 02H ...
- USB描述符【整理】
USB描述符 USB描述符信息存储在USB设备中,在枚举过程中,USB主机会向USB设备发送GetDescriptor请求,USB设备在收到这个请求之后,会将USB描述符信息返回给USB主机,USB主 ...
- HID 报告描述符精细说明.
1,报告描述符概述 1.1) 报表描述符 报表描述符和USB的其他描述符是不一样的,它不是一个简单的表格,报表描述符是USB所有描述符中最复杂的.报表描述符非常复杂而有弹性,因为它 ...
- USB 描述符
标准的USB设备有5种USB描述符:设备描述符,配置描述符,字符串描述符,接口描述符,端点描述符. // Standard Device Descriptor typedef struct { u8 ...
- Python 描述符是什么?以及如何实现
先看一个例子,@property.被@property修饰的成员函数,将变为一个描述符.这是最简单的创建描述符的方式. class Foo: @property def attr(self): pri ...
- usb的hid鼠标键盘报告描述符(五)
title: usb的hid鼠标键盘报告描述符 tags: linux date: 2018/12/20/ 18:05:08 toc: true --- usb的hid鼠标键盘报告描述符 https: ...
随机推荐
- LeetCode 88. 合并两个有序数组
题目: 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...
- 审评(HelloWorld团队)
炸弹人:我觉得炸弹人的构想很不错,很像以前玩的qq堂,不过上课时讲的不够深入,我没有找到项目的思路,项目的介绍也很粗糙,后面说的目标很大,希望你可以实现,我觉得越多的功能,就意味着越多的工作量,总的来 ...
- Day Six
站立式会议 站立式会议内容总结 442 今天:实现计划界面的逻辑 遇到的问题:模态框问题 明天:解决上面问题,开始使用动态数据 331 今天:点击添加找到文件 遇到问题:找到文件在app的引入实现 明 ...
- DHCP介绍
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...
- golang yaml配置文件解析
yaml文件语法 此模块内容转自:http://www.ruanyifeng.com/blog/2016/07/yaml.html 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使 ...
- Racket里的方括号
Racket里的方括号 Racket编程指南 https://blog.csdn.net/chinazhangyong/article/category/7386082 来自于QQ群racket!( ...
- diyiti.cpp
diyiti.cpp/c/pas diyiti.in diyiti.out 2s/256MB 给定两个01串,S,T(下标从0开始). 支持如下3种操作: 1. 修改S第i位的字符,即0->1, ...
- 4.Kali 1.0 / 2.0 安装中文输入法(谷歌pinyin + 其他)
搜狗输入法安装可以参考这个:http://www.cnblogs.com/dunitian/p/6662374.html 1.kali默认是没有中午输入法的,需要自己安装一下 2.首先我们先获取roo ...
- 洛谷P4211 LCA
题意:多次询问,每次求点的标号在[l, r]之间的所有点到点z的lca的深度. 解:看到这题有没有想到某一道很熟悉的题?紫妹和幽香是17岁的少女,喜欢可爱的东西...... 显然这就是开店的超级无敌弱 ...
- HDU 3966 树链剖分+树状数组 模板
Aragorn's Story Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...