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 参数设置可以参考芯片参考手册:

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

相关推荐
GQli20481 分钟前
一天看懂一个原理图(day7)电源输入部分
单片机·嵌入式硬件
llilian_161 小时前
失真度测量仪校准 精准可靠的失真度校准检定测试仪筑牢检测根基 失真度检定装置
功能测试·单片机·嵌入式硬件·硬件工程
iCxhust2 小时前
点亮8086最小系统的LED
stm32·单片机·嵌入式硬件·51单片机·微机原理·8086最小系统·8088单板机
时空自由民.3 小时前
开环无感FOC与SPWM&SVPWM
单片机·嵌入式硬件
集芯微电科技有限公司3 小时前
替代TMUX1380A/TMUX1309A双向8:1单通道 4:1双通道控制多路复用器
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
Wallace Zhang3 小时前
SimpleFOC源码学习10(v2.3.2) - 电流传感器CurrentSense.cpp与CurrentSense.h
驱动开发·stm32·学习·电流环·simplefoc·foc电机控制
我要成为嵌入式大佬4 小时前
项目制作日记简介
单片机·嵌入式硬件
猿来&如此4 小时前
【51单片机】开发板介绍
单片机·嵌入式硬件·51单片机
进击的小头4 小时前
第21篇:TI DSP 寄存器级开发与库函数开发对比
驱动开发·单片机·嵌入式硬件
高翔·权衡之境5 小时前
技术演进的底层驱动——能源、信息、材料的三角博弈
嵌入式硬件·物联网·软件工程·能源·信息与通信