用minifly遥控器打游戏

本文介绍了如何使用STM32和CubeMX配置Minifly遥控器作为游戏手柄,涉及时钟、ADC、USB配置,并通过修改HID设备描述符实现游戏功能。通过HID Descriptor Tool生成报告描述符,然后在usbd_hid.c、usbd_hid.h和main.c中进行代码修改。完成配置后,通过控制面板进行设备设置和校准,使用xpadder软件将遥控器映射到键盘输入,实现游戏控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近在研究minifly,昨天突发奇想想用正点原子minifly的遥控器当一个游戏手柄打游戏放松一下然后就有了这篇博客。

在这里插入图片描述

一.cubemx配置

参考资料:https://www.bilibili.com/read/cv9584555
https://blog.csdn.net/u014415522/article/details/107006787/
首先需要看一下minifly遥控手柄的原理图
在这里插入图片描述
在这里插入图片描述
主要用到的就是两个遥感,从原理图可以看出每一个遥感需要两个adc采集,x方向和y方向。
原理就是stm32通过hid协议与主机通信

1. 时钟配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.ADC配置

多通道连续扫描
在这里插入图片描述
在这里插入图片描述

3.USB配置

在这里插入图片描述
在这里插入图片描述

4.生成代码

在这里插入图片描述
在这里插入图片描述

二.程序

因为cubemx默认生成的设备是鼠标,这里需要改一下
以下代码通过下图软件hid descriptor tool自动生成,除了做游戏手柄外还可以做键盘。。。
(USB 协会提供了一个HID 描述符编辑工具称作HID Descriptor Tool,其执行程序为DT.exe。)

这里介绍一下HID
HID是Human Interface Device的缩写,HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。只要符合HID类别规范的设备都是HID设备。使用STM32的USB功能可以实现HID设备的功能。协议的具体内容可以参考这篇博客https://blog.csdn.net/zhoutaopower/article/details/82469665

hid descriptor tool参考资料: https://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/
在这里插入图片描述
点击file->Save as为.h文件
在这里插入图片描述
生成的.h文件如下

// C:\Users\WYD\Desktop\Desc4.h


char ReportDescriptor[27] = {
   
    0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x09, 0x04,                    // USAGE (Joystick)
    0xa1, 0x00,                    // COLLECTION (Physical)
    0x05, 0x01,                    //   USAGE_PAGE (Generic Desktop)
    0x09, 0x30,                    //   USAGE (X)
    0x09, 0x31,                    //   USAGE (Y)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值