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

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

相关推荐
GeekArch2 小时前
第5讲:嵌入式场景二范式决策树:什么情况快写、什么情况严写
人工智能·stm32·单片机·mcu·物联网·决策树·机器学习
c2385614 小时前
Bug 猎手入门指南
c++·算法·bug
炸膛坦客15 小时前
单片机开发工具篇:(九)MCU 芯片包的安装
单片机·嵌入式硬件
智者知已应修善业19 小时前
【51单片机实现初始化数码管不显示按启动从0秒计时到60按暂停一次显示当前秒按2次恢复原始状态】2024-6-11
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
电气_空空21 小时前
基于LabVIEW的数据采集系统设计与实现
单片机·嵌入式硬件·labview
zlinear数据采集卡1 天前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
三品吉他手会点灯1 天前
嵌入式机器学习 - 学习笔记1.2.3 - 机器学习软件框架
人工智能·笔记·嵌入式硬件·学习·机器学习
传感器与混合集成电路1 天前
128路模拟通道轮询切换技术解析:模拟开关配置机制与精度影响抑制策略
嵌入式硬件·fpga开发
云栖梦泽1 天前
将RAW打包成MIPI CSI2
linux·人工智能·嵌入式硬件
伟大的前程1 天前
us级开定时器中断,单片机的开销大,改用轮询的方式
单片机·嵌入式硬件