STM32CubeMX v6.9.0 BUG:FLASH_LATENCY设置错误导致初始化失败

背景

今天在调试外设功能时,发现设置了使用外部时钟之后程序运行异常,进行追踪调试并与先前可以正常运行的项目进行对比之后发现这个问题可能是由于新版本的STM32CubeMX配置生成代码时的BUG引起的。

测试环境

MCU: STM32H750VBT6
STM32CubeIDE: Version: 1.13.0 Build: 17399_20230707_0829 (UTC)
STM32CubeMX: v6.9.0
FW: STM32Cube FW_H7 V1.11.0
RCC:

问题现象

程序无法正确运行进入主循环,调试程序发现程序在执行 SystemClock_Config(); 时卡死;进一步调试发现程序在下面代码中卡死:

c 复制代码
  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    Error_Handler();
  }

更进一步追踪发现程序卡死在 __HAL_FLASH_GET_LATENCY 相关操作比对结果时。

问题解决

通过上面调试发现问题出在 FLASH LATENCY 相关操作中,对比先前版本的程序,同样配置下 HAL_RCC_ClockConfig 函数中后一个参数为 FLASH_LATENCY_2 ,所以这里修改即可。实测也是修改侯便可以正常使用了。

FLASH LATENCY 参数设置可以参考芯片参考手册:

通常来说设置大点程序运行上会更加可靠,只是效率上变差。

相关推荐
金色光环4 分钟前
STM32实现LM19温度精准测量
stm32·单片机·嵌入式硬件
不做无法实现的梦~5 分钟前
常见编译,烧录和调试工具介绍
stm32·嵌入式硬件
济61722 分钟前
【ROS2 Humble 开发专栏】Ubuntu22.04 基于 OpenCV 实现颜色阈值分割与目标坐标定位|附完整工程源码
嵌入式硬件·嵌入式·ros2·机器人开发·机器人方向
txh050723 分钟前
串口数据调试-直观表示
嵌入式硬件·学习
半条-咸鱼28 分钟前
【STM32】底层 CPU 流程、NVIC 优先级、GPIO 编程与事件(EVT)区别
stm32·单片机·嵌入式硬件
csg110733 分钟前
工厂智能化改造(五):橡塑卷材边缘对齐与纠偏——一个典型非标案例
单片机·嵌入式硬件·物联网·自动化
振南的单片机世界1 小时前
地址总线定“找谁”,数据总线定“搬多少”
arm开发·stm32·单片机
yong99901 小时前
手机蓝牙发送指令STM32串口接收控制 LED 亮灭
stm32·单片机·智能手机
来点抹茶吗1 小时前
U-Boot、内核移植与根文件系统构建(BeagleBone Green Gateway&AM335X)
linux·嵌入式硬件·ubuntu·debian
嵌入式小站10 小时前
STM32 零基础可移植教程 17:USART + DMA + IDLE,串口不定长接收怎么做
stm32·单片机·嵌入式硬件