本项目是一款基于STM32F103C8微控制器设计的UART到USB HID键盘鼠标转换工具,实现串口数据向PC端键盘、鼠标操作信号的无缝传输。
STM32F103C8通过串口(UART)转USB HID键盘鼠标
使用Composite Device组合设备:
- 一个Device -> 一个Configuration -> 两个Interface (Keyboard & Mouse)
- Keyboard Interface: 使用HID boot模式,有两个Endpoint(IN_0x81和OUT_0x01),不使用Report ID
- Mouse Interface: 使用HID boot模式,有一个Endpoint(IN_0x82),同样不使用Report ID
通过这种方式可以确保在计算机设置BIOS时的操作兼容性。
串口接收命令:
- UART协议:波特率 115200, 数据位 8, 停止位 1
- 每帧发送的字符串格式,以{开始; }结束;使用逗号分隔。共9个十进制数字例如: {1,2,3,4,5,6,7,8,9}
- 第九位区分Keyboard(64)或Mouse(128)命令
- 示例:
- 发送 Keyboard 命令: {0,0,0,0,0,0,0,0,64}
- 发送 Mouse 命令:{0,0,0,0,0,0,0,0,128}
发送Keyboard命令时:
- 第一位表示按键释放和各种控制键的状态
- 示例:
- {8} 表示Win键被按下或松开
- {128} 发送 WinApp_Key 键(右Windows)
- {32} 右Shift键按住状态
发送Mouse命令时:
- 第一位表示鼠标按钮的状态,包括左、中和右按键。
- 示例:
- 左点击:{1}
- 右点击: {2}
- 中间滚动或点击:{4}
- 后面的位用于指定鼠标的移动距离(X,Y)及滚轮转动量(Wheel):
- X轴范围从-127到+127,Y轴同样。
- 滚轮数据也使用相同范围。
按键码可参考HID Usage ID标准文档。