STM32 HitBox Controller (USB HID)简介
这是一个基于 STM32F103C8T6 的 有线 HitBox 风格输入设备, 使用 USB HID 协议,在 PC 端被识别为 Joystick / Gamepad, 支持 SOCD(Simultaneous Opposite Cardinal Directions)处理, 用于格斗游戏输入(方向 + 攻击键)。
硬件平台(V1)
MCU:STM32F103C8T6(BluePill / 最小系统板)
USB:全速 USB Device(PA11 / PA12)
输入方式:
左手:4 个方向键(独立 GPIO)
右手:8 个攻击 / 功能键(独立 GPIO)
按键方式:
独立按键
GPIO 输入 + 内部上拉
工具链:Keil + StdPeriph(未使用 Cube / HAL)
USB 协议: HID Joystick 自定义 Report Descriptor
当前已实现功能(V1)
-
输入功能
左手方向键(UP / DOWN / LEFT / RIGHT)
右手 8 个攻击 / 功能键
所有按键均为独立 GPIO(无矩阵)
+SOCD 规则
左右 / 上下 后覆盖(Last Input Priority)
同时输入时输出最后按下的方向
+USB HID
设备可被系统识别为 Joystick
joy.cpl / Gamepad Tester 可正常识别 12 个按键
HID 报告稳定发送
USB 重新枚举与热插拔稳定
-
调试验证
所有功能均可在无调试外设情况下运行
============================================================== 已知问题 / 局限(V1)
-按键扫描周期偏大,手感不够理想
-偶发输入残留
-极快点按可能丢失
-扫描与 USB 发送使用轮询 + 阻塞延时
-洞洞板 / 飞线结构对信号完整性有一定影响
-USB 设备类型为通用 HID Joystick
V1 冻结说明
当前代码状态已冻结,不再修改功能逻辑, 该版本用于:
项目展示
功能验证
架构参考
V2 计划
-
输入与手感优化
1ms 扫描周期(SysTick / TIM)
积分式消抖(短延迟 / 无粘滞)
更严格的 SOCD 边界处理
-
硬件升级
正式 PCB(12 键)
优化 GND 回路与走线
预留功能键 / 模式键
+模式切换
新增「模式切换键」,支持:
HitBox 模式
USB HID Gamepad
SOCD 生效
面向格斗游戏
键盘模拟模式
USB HID Keyboard
输出 WASD / 方向键 + JKL 等
兼容不支持手柄的游戏 / 软件
模式切换将在上电或按键触发后生效,并有软件状态指示。