STM32时钟源
STM32中有四个时钟源:
- HSE(高速外部时钟):晶振频率为4~16MHz,由实际外部晶振频率所决定。
- LSE(低速外部时钟):晶振频率为32.768kHz,主要用于提供实时时钟。
- HSI(高速内部时钟):由内部RC震荡产生,为8MHz,但存在不稳定的问题。
- LSI(低速内部时钟):由内部RC震荡产生,用于提供实时时钟,频率约为40kHz。
STM32F103中默认的时钟源为8M高速外部时钟,通过分频器LLXTPRE选择不分频为8MHz,再通过锁相环PLL经过9倍频得到时钟频率72MHz,并将该频率作为系统时钟。
STM32中很方便的将以上步骤简化为一个初始化函数:
SystemInit();
因此,对于STM32中时钟的配置可以分为以下几步:
- 初始化时钟
RCC_Init();
- 选择时钟源:HSE、LSE、HSI、LSI(LSE、LSI可通过分频或直接用于RTC)
RCC_HSEConfig(RCC_HSE_ON); //8M外部时钟源
高速外部晶振时钟源默认为8M,若要修改为其他频率,需要进行如下设置:
- 打开头文件stm32f10x.h,进行如下修改:将HSE_VALUE的8MHz修改为12MHz。
- 打开system_stm32f10x.c,对锁相环PLL进行如下修改:将9倍频修改为6倍频
3. 设置PLL的时钟源及倍频系数
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
第一个参数可以进行不同设置&#x