STM32下实现joystick

本文介绍如何使用STM32F103C8T6微控制器结合普通摇杆制作USB Joystick,并在Win7上实现无驱动识别。关键点包括:USB D+端需接1.5K上拉电阻,STM32Cube生成项目包含ADC和USB,重点理解并修改USB的描述符,尤其是报告描述符,确保设备在电脑上正确识别并处理发送的数据。

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

最近在做一个简单的joystick,用来项目调试,既是简单的,那上位机必定不要自己写驱动,利用win7自带的即可。奔着这个目标,花了两天时间整好,中间遇到了不少问题,最大的问题在于USB上。
这是WIN7(设备和打印机)上看到的设置界面
win7下,设备和打印机页面看到的设备,已经被WIN7识别出来
右击设备,游戏控制器设置
在游戏控制器设置页面,点击属性,看到的摇杆动态值图
具体事项,下面一一道来。
1、采用STM32F103C8T6+普通摇杆。
2、USB的D+,一定要注意,注意,注意,要接上拉电阻1.5K。否则,USB根本无法被电脑识别。
3、用stm32cube生成项目,包括ADC,USB等。此时生成的代码,是键盘或者鼠标的程序,插上电脑后,即可看到识别出来的设备,我这边选的是鼠标。
4、USB中,用于识别设备的东西,叫描述符,包括设备描述符、配置描述符、端点描述符等,其中最重要的便是,报告描述符,具体可见《USB HID Usage Tables》,其中包括很多实例的报告描述符。此处,便是花了一天多时间才搞明白的,主要还是因为对USB协议不熟悉才造成的。
5、对于stm32cube自动生成的代码中,需要修改的地方主要是
1)、usbd_hid.c下,USBD_HID_CfgDesc[]的wItemLength参数,是报告描述符数组的数目。
2)、usbd_hid.c下,

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值