鼠标发送给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 — 滚轮变化。
2、键盘报文
键盘发送给PC的数据每次8个字节
BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8
定义分别是:
BYTE0 –(0 = OFF,1 = ON,CONSTANT为保留位)
|–bit0: NUM LOCK
|–bit1: CAPS LOCK
|–bit2: SCROLL LOCK
|–bit3: COMPOSE
|–bit4: KANA
|–bit5: CONSTANT
|–bit6: CONSTANT
|–bit7: CONSTANT
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 — 这六个为普通按键
/* 鼠标报文结构体 */ struct mouseHID_t { uint8_t buttons; int8_t x; int8_t y; int8_t wheel; }; /* 发送鼠标报文(一直发送该报文,鼠标会水平向右移动) */ struct mouseHID_t mouseHID; mouseHID.buttons = 0; mouseHID.x = 10; mouseHID.y = 0; mouseHID.wheel = 0; USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t *)&mouseHID, sizeof(struct mouseHID_t));
————————————————
版权声明:本文为CSDN博主「不吃鱼的猫丿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/laifengyuan1/article/details/108243474
原文地址:http://www.cnblogs.com/hshy/p/16871783.html