一、高速晶振(HSE):8MHz是"官方推荐"
主流选择:STM32官方例程、开发板默认用8MHz,通过内部PLL倍频到72MHz(如STM32F1系列)。
为啥选它:
兼容性最好,资料多,出问题容易查。
8MHz×9倍频=72MHz,刚好匹配STM32F1最大主频。
其他可选:4MHz、12MHz、16MHz、25MHz(需参考芯片手册,部分型号支持)。
选12MHz?需改PLL倍频(如6倍频到72MHz),但需同步修改代码和工程设置。
选高频(如25MHz)?注意EMC辐射问题,低频(如4MHz)需确认内部倍频器支持。
二、低速晶振(LSE):32.768kHz是"RTC专用"
唯一用途:给实时时钟(RTC)提供精准时间,断电后靠电池维持。
为啥选它:
32.768kHz=2¹⁵,分频后刚好得到1Hz秒脉冲,计时超准。
低功耗,适合长时间运行。
可选替代:
不用RTC?直接省掉这个晶振,节省PCB空间。
需高精度RTC?选低负载、低ESR值的晶振(如6pF、9pF)。
三、内部晶振(HSI/LSI):应急备用方案
HSI(高速内部RC):
频率:8MHz(主流系列)或16MHz(部分高性能系列)。
缺点:精度差(±1%~±5%),受温度、电压影响大。
用途:对成本敏感、无需高精度的场景(如简单控制)。
LSI(低速内部RC):
频率:约32kHz~40kHz。
用途:独立看门狗(IWDG)或低速RTC(精度要求低时)。
四、选型核心原则:看需求,别盲目
要高精度:
外部高速晶振选8MHz(主流)或12MHz(需改代码)。
外部低速晶振必须用32.768kHz(RTC必备)。
要低成本:
不用RTC?省掉32.768kHz晶振。
对时间精度要求低?直接用内部HSI/LSI。
要兼容性:
跟官方例程走,选8MHz+32.768kHz,省心。
多品牌MCU混用?统一选12MHz(如8051也常用12MHz)。
五、避坑指南:这些错误别犯!
晶振频率与代码不匹配:
选了12MHz晶振,但代码里还是按8MHz算,系统时钟直接乱套!
解决办法:修改HSE_VALUE定义和PLL倍频参数(如STM32CubeMX里直接改)。
忽略负载电容:
晶振标称负载电容(如20pF),但实际用的电容不匹配,导致频率偏移。
解决办法:按公式C1=C2=2×CL-C_stray选电容(CL是晶振标称值,C_stray估算2-5pF)。
布局干扰:
晶振离芯片太远,或下方走高速信号线,导致信号被干扰。
解决办法:晶振紧贴芯片,走线短且对称,下方铺地隔离。