查看: 3|回复: 0

单片机为什么不能一上电就全速跑?聊聊时钟树

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式
⚙️ 72MHz 的 STM32 上电第一刻其实只跑 8MHz 内部 RC——不是它懒,是时钟还没"点好菜"。
💡 为什么不能一步到位全速跑?
  • 复位后默认选内部 RC 振荡器(HSI),不精准但最可靠
  • 外部晶振起振需要稳定时间,PLL 倍频也要先锁相
  • 直接全速跑,启动失败或时钟异常都可能让程序"猝死"

🔍 时钟树的分发逻辑
  • HSE 外部晶振 → PLL 倍频 → SYSCLK 系统时钟
  • 再经 AHB 分频给 CPU,APB 分频给外设,各总线按需配置
  • 外设还有独立时钟开关,不用就关掉省电

✅ 配置时钟的三个坑
  • ❌ Flash 等待周期没跟着主频调,高频下读取出错
  • ❌ APB 分频系数大于 1 时定时器时钟会自动翻倍,算波特率就翻车
  • ✔ 改时钟前先查手册的最大频率表,一步一确认



时钟树就是单片机的供电局:发电要稳,配电要准,各家按表分时。

理解了时钟树,PWM 频率、串口波特率这些"算不准"的问题大多能找到源头。
💬 互动一下:你配时钟踩过什么坑?是波特率偏差还是定时器周期不对?评论区对对账。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
免责声明|Archiver|手机版|小黑屋|半导贴吧

相关侵权、举报、投诉及建议等,请发 E-mail:1152577621@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|渝ICP备2024033348号|渝ICP备2024033348号-1

在本版发帖
关注公众号
QQ客服返回顶部