Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM32 HitBox Controller (USB HID)简介

这是一个基于 STM32F103C8T6 的 有线 HitBox 风格输入设备, 使用 USB HID 协议,在 PC 端被识别为 Joystick / Gamepad, 支持 SOCD(Simultaneous Opposite Cardinal Directions)处理, 用于格斗游戏输入(方向 + 攻击键)。

本仓库当前为 V1 功能验证版本(Feature Freeze), 已完成核心功能闭环,后续版本将在此基础上进行架构与体验优化

硬件平台(V1)

MCU:STM32F103C8T6(BluePill / 最小系统板)

USB:全速 USB Device(PA11 / PA12)

输入方式:

左手:4 个方向键(独立 GPIO)

右手:8 个攻击 / 功能键(独立 GPIO)

按键方式:

独立按键

GPIO 输入 + 内部上拉

供电:USB 5V → 板载 3.3V

工具链:Keil + StdPeriph(未使用 Cube / HAL)

USB 协议: HID Joystick 自定义 Report Descriptor

主循环结构: 按键扫描 SOCD 处理 HID Report 生成与发送

当前已实现功能(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

-非 XInput(Xbox 360)

V1 冻结说明

当前代码状态已冻结,不再修改功能逻辑, 该版本用于:

项目展示

功能验证

架构参考

后续优化将在 V2 分支 中进行。

V2 计划

  • 输入与手感优化

    1ms 扫描周期(SysTick / TIM)

    积分式消抖(短延迟 / 无粘滞)

    更严格的 SOCD 边界处理

  • 硬件升级

    正式 PCB(12 键)

    优化 GND 回路与走线

    预留功能键 / 模式键

+模式切换

新增「模式切换键」,支持:

HitBox 模式

USB HID Gamepad

SOCD 生效

面向格斗游戏

键盘模拟模式

USB HID Keyboard

输出 WASD / 方向键 + JKL 等

兼容不支持手柄的游戏 / 软件

模式切换将在上电或按键触发后生效,并有软件状态指示。

About

使用stm32f103c8设计的一款hb

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages