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

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

相关推荐
somi726 分钟前
ARM-07-i.MX6ULL-EPIT定时器和GPT
arm开发·单片机·嵌入式硬件·gpt·定时器·自用·时钟配置
蓝凌y29 分钟前
51单片机之数码管0~9显示
单片机·嵌入式硬件·51单片机
CODE_RabbitV33 分钟前
STM32 开发中 C 语言结构体复习(精简版)
c语言·stm32·嵌入式硬件
皮皮哎哟1 小时前
ARM—点灯(基于正点原子的IMX6U-mini)
arm开发·单片机·嵌入式硬件·imx6ull·点灯·固件库
可乐鸡翅好好吃1 小时前
一次因 MPU6050 硬件异常导致的 nRF52840 启动卡顿问题总结
单片机·嵌入式硬件
爱喝纯牛奶的柠檬1 小时前
基于STM32和电阻分压模块的电压测量
stm32·单片机·嵌入式硬件
dashizhi20151 小时前
服务器共享禁止外部设备访问、共享文件禁止非单位内部电脑访问?
stm32·单片机·嵌入式硬件
电子科技圈1 小时前
芯科科技闪耀2026嵌入式世界展以Connected Intelligence赋能,构建边缘智能网联新生态
人工智能·嵌入式硬件·mcu·物联网·智慧城市·健康医疗·智能硬件
济6173 小时前
STM32实战:ADC单通道单次转换,光敏传感器实现智能光控LED---STM32 HAL库专栏
stm32·单片机·嵌入式·stm32hal库编程
风逸尘_lz14 小时前
STM32标准工程目录文件解释
stm32·单片机·嵌入式硬件