STM32F1官方默认及大部分场合下都是使用8MHz的外部晶振,STM32F1最大的主频时钟是72MHz,超频的除外。理论上,采用外部时钟作为时钟源时,可以选择4M、8M、12M等晶振,如果MCU使用最高72M主频,对于常用的8M晶振,配置MCU内部为8倍频即可,而在使用12M晶振,配置为6倍频即可。
一般情况下,使用一款MCU时,建议采用官方推荐大小频率的晶振,过高频率的晶振对于外部电路来说,易产生辐射,EMC认证有相关要求。低频率晶振则需MCU内部倍频器支持。12MHz晶振是使用较为广泛,如8051 MCU、NXP系列MCU等都默认12M。如果产品种类多,使用了不同品牌的MCU,为了减少物料使用种类,可统一使用12M晶振。
对于STM32F1使用12M晶振,只需对库文件作部分修改。
1)打开“stm32f10x.h”,将119行中8M的晶振主频
#define HSE_VALUE ((uint32_t)8000000)
修改为12M