上传者: yhsbzl
|
上传时间: 2026-01-22 21:14:08
|
文件大小: 1.38MB
|
文件类型: PDF
在当今嵌入式系统开发领域,STM32微控制器家族凭借其高性能、低功耗、丰富的外设支持等特性,得到了广泛应用。为了满足特定项目需求,开发者们经常需要通过定制化的工程配置来实现所需功能。本文档详细记录了如何在STM32平台上,利用STM32CubeMX和ThreadX/USBX模块来生成一个USB CDC ACM(通用串行总线通信设备类抽象模型)虚拟串口项目,同时确保项目不包含电源分配(PD)功能。
文档描述了客户需求:客户正在使用STM32H563微控制器开发产品,需要实现一个不支持PD功能的USB CDC ACM虚拟串口工程。由于STM32CubeH5代码库中默认工程包含PD功能,这就要求开发人员在硬件和软件层面进行适当的调整。
硬件调整方面,文档详细介绍了如何通过修改NUCLEO_H563ZI开发板上的电路来实现不使用PD功能。具体操作包括更换电阻位置以将PA11、PA12连接到开发板的CN12上,从而可以直接连接USB线。同时指出USB连接线应该连接GND、D+、D-三根线,以及在客户开发板设计中,VBUS连接的重要性。
在软件配置方面,文档逐步指导如何使用STM32CubeMX软件进行工程配置,具体步骤包括:
1. 创建一个新的不带trustZone的工程。
2. 配置USB外设,并使能USB全局中断。
3. 配置ThreadX外设,并使能Core。
4. 配置USBX模块,包括启用Core System,选择Device CoreStack FS和Device Controllers FS,选择CDC ACM类,并配置USB基本参数。
5. 选择其它Platform的USB配置。
6. 配置SYS,使用TIM6作为系统滴答时钟的时钟源。
7. 使用GPIO来控制USB的断开和连接,并使能外部中断。
8. 配置系统时钟为250MHz。
文档还强调了在USB CDC ACM虚拟串口项目中,要模拟USB的断开和连接,可以使用一个GPIO引脚(GPIO_EXTI13)来控制,并使能相应的外部中断。
通过对硬件和软件的定制化调整,开发者能够创建出既符合特定项目需求又具备必要功能的USB CDC ACM虚拟串口工程,而无需电源分配(PD)功能。这对于那些需要USB通信但对电源管理有特殊要求的应用场景非常有用。
本文档内容丰富,不仅涵盖了硬件层面的电路调整,还包括了软件层面的详细配置过程,为实际项目开发提供了极其实用的指导和参考。无论是硬件工程师还是软件开发人员,都能从中获取到宝贵的信息和经验,以更好地完成USB CDC ACM虚拟串口的开发工作。