当前位置: 首页 > news >正文

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(); 时卡死;进一步调试发现程序在下面代码中卡死:

  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 参数设置可以参考芯片参考手册:
在这里插入图片描述
通常来说设置大点程序运行上会更加可靠,只是效率上变差。

http://www.lryc.cn/news/99335.html

相关文章:

  • K8s-资源管理(二)
  • 脉冲信号测试应如何选择示波器带宽?
  • OpenCV DNN模块推理YOLOv5 ONNX模型方法
  • ThirdAI 的私有和可个性化神经数据库:增强检索增强生成(第 3/3 部分)
  • C# 解决TCP Server 关不掉客户端连接的问题
  • JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法)
  • mongostat跟踪Mongodb运行的状态
  • 华为数通HCIA-数通网络基础
  • 【设计模式】详解单例设计模式(包含并发、JVM)
  • 监控和可观察性在 DevOps 中的作用!
  • 论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks
  • 浏览器的同源策略 - 跨域问题
  • go 查询采购单设备事项[小示例]V2-两种模式{严格,包含模式}
  • c++11 标准模板(STL)(std::basic_filebuf)(八)
  • 行为型模式之解释器模式
  • 阿里云域名备案
  • Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试
  • 文档管理NAS储存安全吗?
  • 用windeployqt.exe打包Qt代码
  • 【Python机器学习】实验04(2) 机器学习应用实践--手动调参
  • 【爬虫案例】用Python爬取iPhone14的电商平台评论
  • 01)docker学习 centos7离线安装docker
  • 前端 - 实习两个星期总结
  • MySQL——主从复制
  • 报表下载工具
  • 树及其遍历
  • Qt报错解决办法
  • Python(四十七)列表对象的创建
  • #systemverilog# 说说Systemverilog中《automatic》那些事儿
  • C/C++ 动态内存分配与它的指针变量