为旧的STM32Cube固件创建STM32CubMX ioc项目来自STM32Cub固件存储库的示例第2部分
在本文[1]第1部分的继续中,我们还将简要讨论如何使用STM32CubeMX中的“列出引脚兼容MCU”选项轻松地将您的STM32项目导出到不同的STM32系列。。。
1如果我们在采购STM32F4时遇到问题怎么办?
1.1用于将旧的STM32项目轻松导入新的STM32系列的方法:
如果您在采购STM32系列组件时遇到问题,可以使用两种不同的方法轻松地将MCU项目ioc文件导出到不同的STM32系列。对于此功能演示,我们选择Nucleo-L476,但您也可以使用您选择的其他MCU。
导入项目的两个选项:
1) 方法1:
如何使用STM32CubeMX从一个STM32切换到另一个
2) 方法2:
STM32CubIDE中的MCU1到MCU2迁移选项
1.2导入项目的流程:
这一次,我们打开了在上一节中已经创建的STM32F4-ioc项目。我们使用上面链接中讨论的方法2(“列出引脚兼容的MCU”功能)将我们的项目导入到新的MCU。
图18:ioc配置:将引脚输出和替代功能导出到新的STM32系列。使用“列出引脚兼容的MCU(Alt-L)”。
使用“Alt-L”键盘快捷键选择要将引脚输出传输到的所需MCU。
图19:ioc配置:引脚兼容STM32L4 MCU列表。
图20:ioc配置:警告消息,指示您选择的MCU可能与要迁移的MCU不100%引脚兼容。
注:有时,由于引脚或外围设备不兼容,引脚和功能并不总是转移到新的MCU平台。在这种情况下,STM32CubeMX将尽可能多地传输,但您需要自己手动调整一些配置。
图21显示了连接到按钮的GPIO的引脚分配不正确,以及从图中无法观察到的其他问题,例如:DAC外围设备的配置不正确。
图21:ioc配置:我们将项目迁移到新MCU后的初始引脚设置。并非所有设置都已正确传输。
使用示意图,我们发现正确的GPIO连接到Nucleo-L476上的按钮(“B1用户”):示意图[2] 。例如,B1用户(蓝色)连接到Nucleo-L476上的PC13。
图22:ioc配置:DAC外设重新配置后的引脚设置+将GPIO EXTI重新映射到新引脚(PC13)。
图23至26显示了STM32L4所需的DAC、DMA和时钟树设置的变化。
图23:ioc配置:STM32L4的DAC配置。
图24:ioc配置:DAC DMA的中断配置。
图25:ioc配置:为内存到DAC的外围传输设置DMA。
图26:ioc配置:设置时钟树(由于MCU架构的差异,与我们的STM32F4时钟树配置不同)。
1.3结果:
编译STM32L476项目并运行程序后,我们将观察以下图。如图27和图28所示。图27和图28复制了没有STM32CubeMX ioc文件的原始示例项目(分别为图1和图2)。
图27:基于STM32CubeMX ioc配置文件的新项目的输出:由PA4上的STM32L476 DAC生成的三角波。
图28:基于STM32CubeMX ioc配置文件的新项目的输出:由PA4上的STM32L476 DAC生成的自定义波形(自动扶梯波形)。
如果您对项目实施有任何问题,请参阅以下内容链接[3] 用于已完成的STM32F4DISCOVERY和STM32L4 Nucleo项目。
2个链接:
-
https://st.lightning.force.com/lightning/r/Knowledge__kav/ka03W0000000712QAA/view
-
https://www.st.com/content/ccc/resource/technical/layouts_and_diagrams/schematic_pack/group2/5a/85/d...
-
https://www.st.com/content/dam/AME/2023/MDG/stm32f407disc-and-nucleol476-projects.zip