东城网站建设公司,公司做网站排名,怎么制作小游戏,杭州自助建站网站背景
今天在调试外设功能时#xff0c;发现设置了使用外部时钟之后程序运行异常#xff0c;进行追踪调试并与先前可以正常运行的项目进行对比之后发现这个问题可能是由于新版本的STM32CubeMX配置生成代码时的BUG引起的。
测试环境
MCU: STM32H750VBT6 STM32CubeIDE: Versi…背景
今天在调试外设功能时发现设置了使用外部时钟之后程序运行异常进行追踪调试并与先前可以正常运行的项目进行对比之后发现这个问题可能是由于新版本的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 参数设置可以参考芯片参考手册 通常来说设置大点程序运行上会更加可靠只是效率上变差。