stm32卡在SystemClock_Config();的解决方法

在基于 STM32 HAL 库开展代码编写工作时,遇到了一个令人困扰的问题:编译通过的程序下载到开发板后,始终无法正常运行。为了定位问题根源,我使用 Keil 集成开发环境中的 debug 调试功能,逐步跟踪程序执行流程,发现程序卡在了SystemClock_Config();函数处,不再向下执行。​

由于SystemClock_Config();函数主要负责系统时钟的配置,结合以往开发经验,初步判断该问题与时钟配置存在关联。于是,我打开 STM32CubeMX 软件,仔细检查项目中的时钟树设置。时钟树作为可视化配置系统时钟的重要工具,清晰展示了时钟源选择、分频系数等关键参数。​

经过一番排查,发现外部时钟的设置参数与实际开发板上的晶振规格不匹配。开发板所使用的外部晶振频率是固定的,若在 STM32CubeMX 中设置的外部时钟参数与之不符,会导致系统时钟配置错误,进而使程序无法正常运行。在将外部晶振参数修改为与开发板实际参数一致后,重新生成代码并下载到开发板,程序终于摆脱了卡顿状态,开始正常运行。

相关推荐
M1582276905512 小时前
老 PLC 秒接工业以太网|三格电子串口转网口模块,让设备改造零门槛、一步上云
单片机·嵌入式硬件
zhmc13 小时前
电解电容的ESR定义与测量
嵌入式硬件
神一样的老师13 小时前
【兆易创新GD32VW553开发板试用】开发板资料汇总
单片机
zmj32032413 小时前
单片机电路中不同点的电压计算
单片机·嵌入式硬件·电路·单片机电路
三品吉他手会点灯14 小时前
STM32 VSCode 开发-与STM32CubeMX协同开发环境搭建
vscode·stm32·单片机·嵌入式硬件
weixin_6695452014 小时前
支持 18W 快充的 2 节/3 节串联锂电池高效同步升压充电芯片 SW7306
人工智能·单片机·嵌入式硬件·硬件工程
kaikaile199514 小时前
STM32 + MODBUS RTU + RS485 实现方案
stm32·单片机·嵌入式硬件
CinzWS14 小时前
BASETIMER(基本定时器) - 系统的时基:从时钟源、分频链到定时中断的确定性追求
单片机·嵌入式·basetimer
zy1353806757314 小时前
6v/2.7A的H桥驱动芯片AH6227主要用于5v的适配器上
stm32·单片机·嵌入式硬件
维吉斯蔡14 小时前
【计算机是怎样跑起来的】(二)CPU、内存、I/O 和总线到底是什么?
笔记·stm32·单片机·物联网·计算机外设·51单片机