硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2157|回复: 1
收起左侧

ThreadX+USBX CDC+HID(游戏控制器)移植

[复制链接]

3

主题

24

回帖

33

积分

新手上路

积分
33
发表于 2021-7-13 18:01:20 | 显示全部楼层 |阅读模式
本帖最后由 arilink_tao 于 2021-7-13 18:09 编辑

0.首先准备USBX的源码 本次使用的是6.16版本的USBX 具体使用USB的类型是Device+HID  CPU是STM32H750 暂时没有使用老大的基础历程 正在使用V7开发板进行移植
1.移植USBX需要用的源码如下表所示 其中USBX/Core的内容不变 USBX/Stack和USBX/Class的内容需要根据实际使用USB类型进行调整 USBX/Controllers由硬件商提供 如ST提供STM32的Controllers
[td]
typepathfile name
USBX/Coreusbx-6.1.6_rel\common\core\srcux_system_error_handler.c→ux_utility_virtual_address.c
USBX/Stackusbx-6.1.6_rel\common\core\srcux_device_class_dpump_activate.c→ux_device_stack_uninitialize.c
USBX/ClassE:\usbx-6.1.6_rel_2\usbx-6.1.6_rel\common\usbx_device_classes\src
USBX/Controllers
USBX/PortsE:\usbx-6.1.6_rel_2\usbx-6.1.6_rel\ports\cortex_m7\gnu\inc
2.讲上述文件添加到MDK工程里 并包含头文件路径
image1.png


3.本次是手动移植 没有通过CubeMX生成USB驱动代码 因此需要手动拷贝HAL库USB驱动代码到工程文件夹下 并添加到工程中
image2.png

4.同样的 由于没有使用CubeMX生成工程 需要手动调整stm32h7xx_hal_conf.h文件里的Module Selection配置  打开#define HAL_PCD_MODULE_ENABLED
5.同样的 需要手动添加usb_otg.c到工程里 便于后面调用
6.同样的 stm32h7xx_it.c里需要手动添加USB的终端 否则threadx usbx无法正常获取中断信息并进行相应
7.调整系统时钟 以开启USB系统时钟
8.编译 下载 此时设备管理器中会多出一个虚拟串口和一个游戏控制器 证明USBX移植成功当前还是有些地方不是很明白
程序放在下面了 有感兴趣的同学可以一起交流
ThreadX USBX.rar (2.96 MB, 下载次数: 136)



评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2021-7-14 01:38:20 | 显示全部楼层
非常感谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 04:40 , Processed in 0.203366 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表