资讯动态

【官方原创】LAT1720 从NUCLEO-C562RE向NUCLEO-C5A3ZG移植USB虚拟串口示例

发布时间:2026/9/30 7:10:41 来源:尧图企业网站定制
1.引言USB虚拟串口是很多人常用的USB Device应用STM32C5的Cube包中只提供了基于NUCLEO-C562RE的USB虚拟串口示例但是并没有提供基于NUCLEO-C5A3ZG的示例。那么要将基于NUCLEO-C562RE的USB虚拟串口示例移植到NUCLEO-C5A3ZG需要注意些什么呢2.问题2.1问题详情客户在开发其产品过程中使用了STM32C5A3RGT6。客户反映在STM32C5的Cube包中只提供了一个USB虚拟串口示例\STM32C5-MCU HAL2.0.0\examples\middleware\usbx\device_cdc_acm_uart_freertos而且只支持NUCLEO-C562RE不支持NUCLEO-C5A3ZG。客户反映将NUCLEO-C562RE的工程编译后将hex文件下载到NUCLEO-C5A3ZG板上接上PC端PC端提示“无法识别的设备”。客户觉得同一系列的NUCLEO板在设计上应该可以兼容但是不知道为什么就是无法识别。2.2问题分析还是需要对两个NUCLEO板进行检查看看硬件上是否存在不同。2.2.1第一个需要考虑到的地方就是USB部分的电路先来看NUCLEO-C562RE也就是MB2213的USB部分的电路图如图1所示。图1. MB2213中USB电路图再来看NUCLEO-C5A3ZG也就是MB2310的USB部分的电路图如图2所示。图2. MB2310中USB电路图仔细比对后发现其实这两个USB部分的电路图是一模一样的。所以问题肯定不是出在USB部分了。那么还有什么是需要考虑的吗有跟USB相关的可能还会有时钟的问题还是来看一下在时钟驱动上会不会有不一样的地方继续看电路图。2.2.2第二个需要考虑的地方是时钟部分的电路先来看NUCLEO-C562RE也就是MB2213的HSE部分的电路图如图3所示。图3. MB2213中HSE电路图再来看NUCLEO-C5A3ZG也就是MB2310的HSE部分的电路图如图4所示。图4. MB2310中HSE电路图可以看到这两个板子实际上使用的晶体的频率值是不一样的NUCLEO-C562RE使用了24MHz的晶体但是NUCLEO-C5A3ZG使用了48MHz的晶体。所以并不是在同一系列上振荡电路就会是一样的。既然晶体的频率值不同那么在软件上相应的位置也需做出相应的修改。3.解决办法阅读代码就可以知道USB的48MHz时钟CK48来自PSIDIV3而PSI的参考时钟是选择HSE作为参考时钟的所以在RCC的初始化函数要正确配置PSI的参考时钟。在NUCLEO-C562RE示例代码中此mx_rcc_init()函数如图5所示。图5. NUCLEO-C562RE示例代码mx_rcc_init()函数根据NUCLEO-C5A3ZG的情况红框处的数值就要相应地修改为HAL_RCC_PSI_REF_48MHZ如图6所示。图6. NUCLEO-C5A3ZG示例代码mx_rcc_init()函数修改完此处是不是就可以了呢如果此时就编译下载就会发现还是不行的。代码中还有一个定义是需要修改的在stm32_external_env.h头文件中。此文件用来定义外部环境参数值主要就是定义外部晶振的数值所以当修改外部振荡频率时需要对此文件进行检查并修改。在NUCLEO-C562RE示例代码中的stm32_external_env.h头文件定义了HSE_Value的值为24000000如图7所示。图7. NUCLEO-C5A3ZG示例代码HSE_Value定义根据NUCLEO-C5A3ZG的情况红框处的数值就要相应地修改为48000000如图8所示。图8. NUCLEO-C5A3ZG示例代码HSE_Value定义这样就修改完了将工程的MCU型号选择为STM32C5A3ZG后编译并下载到NUCLEO-C5A3ZG。运行后通过USB线连接到PC端就可以正常地看到新出现的COM串口了。用Tera Term分别打开此端口和NUCLEO板上ST-LINK的那个串口往一个串口界面中输入数据就可以发现显示在另一个串口界面上了。4.小结NUCLEO-C562RE和NUCLEO-C5A3ZG两块板子所用的晶体的频率值并不相同如果需要在它们之间进行示例代码的移植需要相应地修改PSI的参考时钟频率和HSE_VALUE的值。点击下载《LAT1720 从NUCLEO-C562RE向NUCLEO-C5A3ZG移植USB示例》原文档。点击下载《LAT1720 从NUCLEO-C562RE向NUCLEO-C5A3ZG移植USB示例》附件。重要通知 - 请仔细阅读意法半导体公司及其子公司 “ST”保留随时对 ST 产品和 / 或本文档进行变更的权利恕不另行通知。买方在订货之前应获取关于 ST 产 品的最新信息。 ST 产品的销售依照订单确认时的相关 ST销售条款。 买方自行负责对 ST 产品的选择和使用 ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。若需 ST 商标的更多信息请参考 www.st.com/trademarks。所有其他产品或服务名称均为其 各自所有者的财产。 本文档是ST中国本地团队的技术性文章旨在交流与分享并期望借此给予客户产品应用上足够的帮助或提醒。若文中内容存有局限或与ST 官网资料不一致请以实际应用验证结果和ST官网最新发布的内容为准。您拥有完全自主权是否采纳本文档包括代码电路图等信息 我们也不承担因使用或采纳本文档内容而导致的任何风险。 本文档中的信息取代本文档所有早期版本中提供的信息。 © 2020 STMicroelectronics - 保留所有权利

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑