USB鼠标、键盘数据格式

HID设备数据格式 HID设备数据格式 USB设备中,HID设备算是最简单的了. 鼠标发送给HOST端的数据每次4个字节,定义如下: 字节序 说明 字节0 [7]1表示Y坐标变化量超出255, [6]1表示X坐标变化量超出255, [5]1... 阅读详情

鼠标发送给PC的数据每次4个字节 
BYTE1 BYTE2 BYTE3 BYTE4 
定义分别是: 
BYTE1 -- 
       |--bit7:   1   表示   Y   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  
       |--bit6:   1   表示   X   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  
       |--bit5:   Y   坐标变化的符号位,1表示负数,即鼠标向下移动  
       |--bit4:   X   坐标变化的符号位,1表示负数,即鼠标向左移动  
       |--bit3:     恒为1  
       |--bit2:     1表示中键按下  
       |--bit1:     1表示右键按下  
       |--bit0:     1表示左键按下  
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量  
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量 
BYTE4 -- 滚轮变化。 
由于手上没有USB鼠标,对BYTE1的4-7位没有测试,对于BYTE2 BYTE3做个测试,BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向 

键盘发送给PC的数据每次8个字节 
BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8 
定义分别是: 
BYTE1 -- 
       |--bit0:   Left Control是否按下,按下为1  
       |--bit1:   Left Shift  是否按下,按下为1  
       |--bit2:   Left Alt    是否按下,按下为1  
       |--bit3:   Left GUI    是否按下,按下为1  
       |--bit4:   Right Control是否按下,按下为1   
       |--bit5:   Right Shift 是否按下,按下为1  
       |--bit6:   Right Alt   是否按下,按下为1  
       |--bit7:   Right GUI   是否按下,按下为1  
BYTE2 -- 暂不清楚,有的地方说是保留位 
BYTE3--BYTE8 -- 这六个为普通按键 
键盘经过测试。 
例如:键盘发送一帧数据   02 00 0x04 0x05 00 00 00 00 
表示同时按下了Left Shift + ‘a’+‘b’三个键 
对于键码和PS2的键盘有所不同,具体请看附件。 
USB HID to PS2 Scan Code 对照表.pdfourdev_651088NZ5EKW.pdf(文件大小:133K) (原文件名:USB HID to PS2 Scan Code Translation Table .pdf)  


2011.6.23补充说明 
补充对于键盘BYTE2的说明: 
参照百合网(http://www.baiheee.com/OpenSource/Easy%20USB%2051%20Programer/Easy%20USB%2051%20Programer12.htm)键盘的报告描述符,如下 
/*******************************************************************************************/ 
//这里只列出了第二个字节的说明 
    //这样的数据段个数为1     
    0x95, 0x01,                    //   REPORT_COUNT (1)     
    //每个段长度为8bits     
    0x75, 0x08,                    //   REPORT_SIZE (8)     
    //输入用,常量,值,绝对值     
    0x81, 0x03,                    //   INPUT (Cnst,Var,Abs)     
         
    //上面这8个bit是常量,设备必须返回0   
/*******************************************************************************************/ 
这里只是指明了这是一个以字节为单位的输入数据,并没有指明它的取值范围。 

在HID1.11协议的Appendix B-->B.1 Protocol 1 (Keyboard) 的报告描述符中也有这样的说明(HID1.11协议的59页) 
/*******************************************************************************************/ 
   Report Count (1),   
   Report Size (8),  
   Input (Constant),              ;Reserved byte  
   Report Count (5),   
   Report Size (1),  
/*******************************************************************************************/ 
在注释中说明,这个字节是保留字节。

USB鼠标分析——接口描述符(四) USB鼠标详解阅读顺序 1、枚举 2、设备描述符 3、设置地址 4、配置描述符 5、接口描述符 6、HID 描述符 7、端点描述符 8、字符串描述符 9、HID 报告描述符 10、HID 报告的返回 linux内核中对接口描述符的定义,目录:linux/include/uapi/linux/usb/ch9.h /* USB_DT_INTERFACE: ... 阅读详情

相关推荐

USB-HID鼠标、键盘通讯格式

详细介绍了,鼠标键盘的数据格式。 鼠标发送给PC的数据每次4个字节 BYTE1 BYTE2 BYTE3 BYTE4

鼠标发送给PC的数据

鼠标发送给PC的数据每次4个字节  BYTE1 BYTE2 BYTE3 BYTE4  定义分别是:  BYTE1 --         |--bit7:   1   表示   Y   坐标的变化量超出-256   ~   255的范围,0表示没有溢出          |--bit6:   1   表示   X   坐标的变化量超出-256   ~   255的范围,0表示没有

cs9dn003的专栏 3547

基于STM32F103的USB键盘程序代码

基于STM32F103C8的USB键盘程序代码,Keil,与电脑相连后被识别为键盘并周期发送‘a’,主程序可变。

USB键盘常用码值表

00    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 

Happyflystone - 无枪狙击手 6107

基于stm32f103c8t6的USB-HID键盘示例程序

基于stm32f103c8t6最小系统板,内容配置USB-HID键盘测试程序-基于keil的标准库函数,连接上电脑后,设备管理器会USB-keyboard,固定键盘发送a 间隔200ms ,键盘具体协议格式可在网上自行查找

STM32 STM32F103仿真USB键盘的例程

STM32F103 例程 仿真USB键盘 仿真了四个按键 Caps/Shift/A/Ctrl 其它的按键可以据此自行增添 软件开发工具 KEIL4

STM32F103 CubeMX 使用USB生成键盘设备

需要注意的是,如果按键松开了,则需要将按键松开的信息发送过去。否则的话会默认按键一直按下。从而产生多余的信息。#include “usbd_hid.h” 文件中的申明文件,修改一下。这里调用函数:USBD_HID_SendReport,发送数据给电脑。配置信息的时候,主要配置了外部时钟,debug口,USB这三个。stm32F103C8T6最小系统板,如下图所示的最简原理图。这部分第一个是因为要调用“usbd_hid”中的函数所以引用。另外也需要使用到usb是这个数据。

伪NChris的博客 1872

usb键盘数据格式,键盘按下后,向主机发送的数据。

usb键盘数据格式,每个键位按下之后,USB口向主机发送的数据,都是固定的。通过这个文档,可以直接查找。

USB鼠标键盘数据格式以及按键键值(转载)

鼠标发送给PC的数据每次4个字节BYTE1 BYTE2 BYTE3 BYTE4定义分别是:BYTE1 -- |--bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出 |--bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出 |--b...

weixin_34104341的博客 4826

stm32f103 USB的HID和MSC复合设备官方源码

本源码是stm32f103官方提供的USB的HID和MSC复合设备库文件源码

无人机蜂群联合指挥作战技术详解

随着人工智能、通信技术、新材料等领域的不断进步,无人机蜂群联合指挥作战技术将迎来更加广阔的发展前景。未来,无人机蜂群将更加智能化、自主化,能够执行更加复杂、精细的作战任务。同时,加强国际合作,共同制定国际规则和标准,将是推动无人机蜂群技术健康发展的重要方向。无人机蜂群技术,是指通过先进的通信技术、自主导航与决策算法,将大量小型、低成本、功能各异的无人机组织成一个高度协同的群体,执行复杂多样的军事任务。2. 通信与数据链:采用高速、低延迟、抗干扰的通信技术,保障群体内无人机间的信息交换。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1543

STM32F103之USB鼠标、键盘数据格式

鼠标发送给PC的数据每次4个字节  BYTE1 BYTE2 BYTE3 BYTE4  定义分别是:  BYTE1 --         |--bit7:   1   表示   Y   坐标的变化量超出-256   ~   255的范围,0表示没有溢出          |--bit6:   1   表示   X   坐标的变化量超出-256   ~   255的范围,0表示没有溢出  

qq_1443539042的博客 4409

为什么传统CNN在视网膜分割中败给Mamba?从血管拓扑学揭秘Serp-Mamba的蛇形扫描黑科技

本文深入分析了传统CNN在视网膜血管分割任务中的局限性,特别是在处理高分辨率图像和复杂血管拓扑结构时。针对这些问题,文章重点介绍了Serp-Mamba模型的核心创新——蛇形交织自适应扫描(SIA)机制,该机制通过让扫描路径自适应地贴合血管曲率,并结合模糊驱动双重校准(ADDR)模块应对极端类别失衡,从而在视网膜血管分割任务上实现了性能的显著突破。

ss78901的博客 890

USB键盘鼠标描述符及数据格式分析

USB HID 键盘鼠标 描述符分析及数据格式解析

somnus.清澈的博客 2051

从‘全步’到‘微步’:一张图看懂步进电机细分控制,选对模式让你的项目更丝滑

本文深入解析步进电机细分控制技术,从全步到微步的演进过程,帮助工程师根据项目需求选择最优控制模式。通过对比不同细分等级的性能特点和应用场景,提供3D打印、实验室自动化等领域的黄金配置方案,实现更精准、平稳的电机控制效果。

weixin_29290259的博客 470

利用ArcMap实现遥感图像语义分割标注的完整流程解析

本文详细解析了利用ArcMap进行遥感图像语义分割标注的完整工作流。从工程创建、数据导入、SHP文件创建,到实战勾画地物、要素转栅格,再到最终的裁剪对齐,提供了每一步的关键操作与避坑指南。该方法特别适合处理大尺寸、带地理坐标的遥感影像,能高效产出精准对齐的图像-标签对,为后续深度学习模型训练奠定可靠的数据基础。

gpu4optimizer的博客 1208

USB鼠标键盘数据格式以及按键键值

鼠标发送给PC的数据每次4个字节BYTE1 BYTE2 BYTE3 BYTE4定义分别是:BYTE1 -- |--bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出 |--bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出...

weixin_30256901的博客 899

2025软考信息安全工程师真题

2025信息安全工程师软考真题

qq_40424393的博客 1706

STM32USB鼠标+键盘串口控制

USB鼠标键盘数据格式以及按键键值 网上相关的资料很多 ,有点分散,我没事就边学习边整理了下,供大家参考``: 原文来自https://blog.youkuaiyun.com/u013771867/article/details/51465193 鼠标发送给PC的数据每次4个字节 BYTE1 BYTE2 BYTE3 BYTE4 定义分别是: BYTE1 – |–bit7: 1 表示 Y 坐标的...

行如飞燕,战似雄鹰 4945

【ros2】从零认识URDF:机器人模型描述的“说明书”

visual>子节点只负责机器人在RViz2中的可视化效果,不参与任何物理计算,就像给零件“穿衣服”。<origin>:定义零件的局部坐标系相对于连杆原点的位姿,参数xyz表示平移(单位:米),rpy表示旋转(单位:弧度,绕x→y→z轴旋转);<geometry>:定义零件的几何形状,支持四种基础形状+外部3D模型;<material>:定义零件的颜色,需要提前定义材质。常见几何形状示例-- 连杆名称:base_link(底座),全局唯一 --> < visual > <!

EnHengNa的博客 1609

28-基于STM32单片机的便携式健康监测系统设计与实现(程序+原理图+元件清单)

本文详细介绍了基于STM32单片机的便携式健康监测系统设计与实现,该系统集成MAX30102光电传感器和MSP20压力传感器,实时监测心率、血氧和血压等关键生理指标。通过STM32F103C8T6主控芯片和HC-05蓝牙模块,实现数据采集、处理及无线传输,具有便携性高、操作简便等特点,适用于家庭健康监护和户外运动场景。

weixin_29191669的博客 420

USB-HID鼠标、键盘通讯格式【转】

转自:https://blog.youkuaiyun.com/techhome803/article/details/9928873 转自:http://www.amobbs.com/forum.php?mod=viewthread&tid=4823160&page=1&authorid=249202 想用STM32做个无线键鼠遥控、找了好几天没有找到完整的USB鼠标键盘协议介...

weixin_34281477的博客 263

Android 13 灭屏音乐播放问题解决与优化建议

通过在中增加对音乐播放状态的检测,我们成功解决了客户应用在灭屏状态下音乐播放被中断的问题。

m0_60898338的博客 1157
上一篇: C++设计模式系列
下一篇: C++类头文件不暴露私有变量的一种写法
CoderAldrich
博客等级 码龄12年 431粉丝 24原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值