STMCU小助手
发布时间:2024-11-13 11:29
|
1问题发生的背景1 z3 A: A ]+ W% P$ K 细心的用户可能会发现,使用到我们最新的STM32CubeMX 6.9.1对STM32H5的 USB外设进行配置的时候,只能用USBX,而以前的Classic USB库不能选择了。由于USBx 是基于Threadx OS的,客户更多的希望是裸机版本的,所以在这儿给大家提供一个移植的方法。9 x- Q% Q9 l7 f% C- L * E+ v7 k: L$ j: ]: V) ^ 2问题的分析 虽然在STM32CubeMX 6.9.1上不能使用经典的Classic USB驱动了,但是实际上在 github上,仍能发现一些可用的资源供参考: GitHub - STMicroelectronics/stm32h5-classic-coremw-apps: Provide a set of applications for STM32H5xx series based on the STM32 Classic Core Middleware libraries U4 y& D+ O, v' E9 m- n; d' { GitHub - STMicroelectronics/stm32u5-classic-coremw-apps: Provide a set of applications for STM32U5xx series based on the STM32 Classic Core Middleware libraries: G7 b n7 J& h 下载这两个链接,发现H5例程里面仅仅有Classic USB driver的HID例程,并没有 CDC的,但这对于我们想要移植来说,已经足够了。 & }2 n' {- \) k, R 3Classic USBD CDC驱动的移植 3.1 解压缩编译验证原始工程$ }! k% }! Q$ M) X& e 对原始的H5例程进行编译,发现报如下错误:- p. c9 p( Z; X) \+ [$ ]
驱动相关文件夹……\stm32h5-classic-coremw-apps-main\Drivers 里内容是空的;解决方法:建议将最新版本的STM32CubeH5 lib里面的Drivers全部拷贝即可(含有 BSP、CMSIS、STM3H5xx_HAL_Driver); 库文件STM32_USB_Device_Library 也为空,建议从github上下载:! e2 e% T' ]% A GitHub - STMicroelectronics/stm32_mw_usb_device: Provides the USB Device library part of the STM32Cube MCU Component "middleware" for all STM32xx series. # I; E2 w, a2 }/ e8 e- U 解压后,再复制stm32_mw_usb_device-master内的Core,Class的文件夹到 \stm32h5-classic-coremw-apps-main\Middlewares\ST\STM32_USB_Device_Library,编译通过,无错误。/ t' Q: C, Y: L% t$ H6 z$ @ 下载工程到NUCLEO H563运行,通过设备管理器能找到相应的HID设备,测试按一 下USER BUTTON按键,则鼠标也会跟着横向移动一步。
基于此,我们准备开始新建CDC的例程。
为了更简便的在H5上移植USB Device外设,我们将PD功能相关的库去除(如上图红色框),并屏蔽User Code部分关于USBPD的处理并解决编译错误. Main 函数可以简化为如下:
$ Q$ n0 l- ~4 M& P 3.3.实现USB CDC的枚举# t5 X0 h! Z7 Y' b! I3 A5 | 即使目前使用的是HID类,但是不同USB类,对应枚举的实现其实是一样的,所以,第一步:将usbd_hid.c 移除,项目工程中加入\stm32_mw_usb_device master\Class\CDC\Src 中的 usbd_cdc.c,并修改相应头文件名称和路径,解决编译问题;另外,由于移除了usbd_hid.c文件,所以在应用层也需要并屏蔽掉HID相关的应用层操作;主要比如HAL_GPIO_EXTI_Rising_Callback(),然后编译,会遇到下面3个错误:
简单的验证64个字节之内的发送与接收,修改函数如下:
" N/ q; A0 j( T 测试如下:
|
STM32H5系列新品发布,为开发人员留出更多拓展空间
实战经验 | MCU复位期间PC端仍然认为USB连接未断开
新品上市 | STM32H5系列扩容,1MB Flash新品STM32H543/553助力成本性能均衡设计
【新品发布】STM32H543/H553 新品登场
STM32家族再添猛将:STM32H5F/E高性能系列,4MB闪存+Chrom-ART2,专为中高级图形应用而生
架构革新篇:单芯片 GUI 方案原理与核心优化技术
趋势痛点篇:嵌入式 GUI 爆发,传统存储架构的困境与挑战
上海/深圳 | 基于STM32H5的GUI图显应用开发线下实训
实战经验 | STM32H5基于USBx裸机添加OUT端点实现HID类双向通信
STM32H5 USBX 裸机实现 HID 双向通信:OUT 端点添加完整指南
微信公众号
手机版
还没碰到,先学习。