📖 第 41 章:USB鼠标键盘(Host)实验(USB Mouse/Keyboard (Host))

🔧 正点原子《DMF407 开发指南》V1.0 · Chapter 41
🗨️ 「USB 鼠标键盘:MCU 也能伪装成电脑外设。」
这一章在干嘛? USB 鼠标键盘实验:USB HID 类、Boot Mouse/Keyboard 子类、报表描述符。从此 MCU 可以当鼠标或键盘。
41.1 USB 鼠标键盘简介41.2 硬件设计41.3 程序设计41.4 下载验证

41.1 USB 鼠标键盘简介

USB HID(Human Interface Device)= 人机接口设备类。

F407 通过 OTG FS + 中间件可作 HID:

原书图 41.1.1:HID 报表描述符示例
原书图 41.1.1:HID 报表描述符示例

Boot 子类:BIOS 不需要装驱动就能识别,适合做启动盘、维护工具。

41.2 硬件设计

USB OTG FS 接口即可。

41.3 程序设计

41.3.1 CubeMX 配置

41.3.2 关键代码(鼠标)

typedef struct {
    uint8_t buttons;
    int8_t  x;
    int8_t  y;
    int8_t  wheel;
} HID_MOUSE_Report;

HID_MOUSE_Report rep = {0};
rep.x = 5; rep.y = 0;
USBD_HID_SendReport(&hUsbDeviceFS, &rep, sizeof(rep));

原书图 41.3.2.1:USB 鼠标报表数据格式
原书图 41.3.2.1:USB 鼠标报表数据格式

原书图 41.3.2.2:USB 键盘报表数据格式
原书图 41.3.2.2:USB 键盘报表数据格式

41.4 下载验证

按 KEY0/KEY1 → 屏幕光标移动;按 KEY_UP → 发送「Enter」键入字符。

键码:USB HID 键码不是 ASCII。例如「A」= 0x04,「Enter」= 0x28。

原书图 41.4.1:USB 键盘键码表
原书图 41.4.1:USB 键盘键码表

🧠 小测验
USB HID 是什么?
Human Interface Device,人机接口设备类。
Boot Mouse 报表数据多大?
4 字节(按键 + X + Y + 滚轮)。
「Enter」键的 USB HID 键码是?
0x28。
← 上一篇🏠 顶层目录下一篇 →