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

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

相关推荐
z203483152015 分钟前
智能台灯控制面板
单片机·嵌入式硬件
钿驰科技15 分钟前
TC-BL3650驱动板在无刷减速电机的应用
单片机·嵌入式硬件
深耕AI18 分钟前
【单片机】解密STC89C52
单片机·嵌入式硬件
三佛科技-1341638421237 分钟前
FT32F072xx、FT32F072xB、FT32F072x6/x8基于ARM Cortex-M0内核32位单片机分析
arm开发·单片机·嵌入式硬件·智能家居·pcb工艺
清风66666637 分钟前
基于单片机的火焰与温度联动检测及声光灭火控制系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
f***241142 分钟前
Bug悬案:程序员破案实录
bug
chen_mangoo1 小时前
Rockchip debian预置安装deb包
linux·驱动开发·嵌入式硬件
梁山1号1 小时前
【关于CAN】
c语言·stm32·单片机
金线银线还是铜线?1 小时前
BLE设备 MF9006 PMIC 能量协同设计 低功耗物联网供电方案
嵌入式硬件·物联网·射频工程·iot
yuanmenghao1 小时前
CAN系列 — (3) Radar Object List 在 MCU 内部是如何被拼装、校验并最终被消费的?
单片机·嵌入式硬件·自动驾驶·信息与通信