[STM32F1] STM32F1未等待HSE稳定直接切换系统时钟导致系统崩溃

[复制链接]
 楼主| probedog 发表于 2025-7-9 15:55 | 显示全部楼层 |阅读模式
STM32F1未等待HSE稳定直接切换系统时钟导致系统崩溃
公羊子丹 发表于 2025-7-28 07:18 | 显示全部楼层
切换到HSE前一定要检查HSERDY标志,否则时钟还没稳就切,系统容易挂掉。
周半梅 发表于 2025-7-28 07:19 | 显示全部楼层
STM32的参考手册明确要求要等HSERDY=1再改SW位,不能图快。
帛灿灿 发表于 2025-7-28 07:19 | 显示全部楼层
你是在手动配置RCC还是用CubeMX?Cube生成的代码默认会等待HSE稳定。
童雨竹 发表于 2025-7-28 07:20 | 显示全部楼层
可以加个简单的while循环判断 RCC->CR & RCC_CR_HSERDY 再切换。
万图 发表于 2025-7-28 07:21 | 显示全部楼层
如果系统一启动就崩溃,估计你写死了HSE作为SYSCLK,没加判断分支。
Wordsworth 发表于 2025-7-28 07:22 | 显示全部楼层
尝试加个超时保护,避免晶振异常时死等或乱跳主频。
Bblythe 发表于 2025-7-28 07:22 | 显示全部楼层
ST官方库里 HAL_RCC_OscConfig 会自动帮你处理这个ready判断,建议用它。
Pulitzer 发表于 2025-7-28 07:23 | 显示全部楼层
如果HSE不稳,系统频繁重启,你可以暂时先用HSI启动后再软切HSE。
Uriah 发表于 2025-7-28 07:24 | 显示全部楼层
有些开发板HSE晶振质量不高,冷启动时容易起振失败,一定要加稳定判断。
Clyde011 发表于 2025-7-28 07:25 | 显示全部楼层
如果用FreeRTOS,那这个切换过程更要小心,不能在任务调度前就崩。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

486

主题

3268

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

486

主题

3268

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部