zww 发表于 2014-12-10 23:21:11

[STM32F072 Nucleo]开发笔记(三) 修改USB代码用于游戏方向盘

修改USB代码用于游戏方向盘首先要做的就是修改位于usbd_hid.c文件中的HID报告描述符,如下图

改好后为了测试数据是否能发送到电脑因此用板子上的user b1按钮模拟方向盘的转向,按下时为左转,弹起时回中点。判断按键状态用了中断方式,在中断处理函数中通过USBD_HID_SendReport函数发送报告数据。如下图

完成后编译运行,然后插上USB数据线
电脑成功识别了游戏控制器,如下图所示

进入游戏控制器设置程序能发现各个轴和16个按键

通过USBTrace抓包工具可以发现按下和松开按钮时能电脑能正常收到板子的报告数据

由此USB部分修改基本满足要求,接下来要做的就是扩展方向盘的硬件部分并把各个轴和按钮的数据报告给电脑。


附上源码:

去除中间文件和临时文件版:




更多:
开发笔记(一)试用感受
开发笔记(二)扩展USB接口

zww 发表于 2014-12-11 18:15:09

本帖最后由 king-388328 于 2014-12-11 18:23 编辑

Dylan疾风闪电 发表于 2014-12-11 10:23
一直想做一个鼠标+键盘的USB设备,苦于HID报告描述符不知道怎么定义?LZ有什么软件推荐下么,解决我的难题 ...
可参照这个鼠标+键盘复合设备的例子,也就是定义两个接口。

也可自己生成HID报告描述符,官方有相应工具:



党国特派员 发表于 2015-2-1 16:19:41

果然是很好的贴子。。。

沐紫 发表于 2014-12-11 10:17:56

好贴必须顶

Dylan疾风闪电 发表于 2014-12-11 10:23:31

一直想做一个鼠标+键盘的USB设备,苦于HID报告描述符不知道怎么定义?LZ有什么软件推荐下么,解决我的难题。:)

Dylan疾风闪电 发表于 2014-12-12 08:32:45

非常感谢LZ,等有空了再来研究一下复合设备和单个设备之前有什么异同。:)

wamcncn 发表于 2014-12-25 20:33:51

好帖必须顶

星辰一方 发表于 2015-2-1 13:06:25

不错,感谢分享!

木木鱼 发表于 2015-2-5 09:13:43

这个类型的产品,我在北京参加比赛时见过,用两个类似手表状的控制器来遥控,一直不知道是怎么做出来的,而且还是STC15系列做的,看完这篇,有点感觉。

wz002 发表于 2015-2-6 00:13:02

高端:):):):):)

我爱下载 发表于 2015-2-6 08:08:17

很好收了

deadgod2012 发表于 2015-2-6 09:01:35

好东西

deadgod2012 发表于 2015-2-6 09:02:02

果然是很好的贴子。。。




果然是很好的贴子。。。












Veiko 发表于 2015-2-7 22:06:37

HID设备是个好东西,不用写驱动,呵呵,不过上位机得写一下

_ilikerome_ 发表于 2015-2-8 10:18:44

LZ这个系列不错啊,跟着LZ学习了。
页: [1] 2
查看完整版本: [STM32F072 Nucleo]开发笔记(三) 修改USB代码用于游戏方向盘