stm32时钟
stm32时钟源选择
stm32时钟树图
注:STM32通常采用外部高速时钟源,频率为8MHZ,通过PLLXTPRE进行一分频,再通过PLLMUL选择9倍频得到最大频率72MHZ。
系统时钟配置
HAL库
1:配置HSE VALUE
告诉HAL库外部晶振频率,stm32xxxx_hal_conf.h
2:选择时钟源,配置PLL
通过HAL RCC OscConfig()函数设置
3:选择系统时钟源,配置总线分频器
通过HAL_RCC _ClockConfig()函数设置
程序代码
STD库
1:将RCC寄存器初始化,选择外部高速时钟
通过RCC_DeInit()函数来将RCC寄存器进行初始化
通过函数RCC_HSEConfig()来选择外部高速时钟
2:等待外部晶振起振
通过对函数RCC_WaitForHSEStartUp()的返回值来等待晶振起振
3:配置PPL
通过函数RCC_PLLConfig()来选择分频和倍频数
4:配置AHB时钟线,APB1,APB2时钟线
通过函数RCC_HCLKConfig()来配置AHB时钟线
通过函数RCC_PCLK1Config()来配置APB1时钟线
通过函数RCC_PCLK2Config()来配置APB2时钟线
5:使能PLL
通过函数RCC_PLLCm()来使能PLL
6:等待PLL就绪
通过对函数RCC_GetFlagStatus()的返回值来判断PLL是否就绪,如果未就绪就一直等待。
7:将PLL作为系统时钟
通过函数RCC_SYSCLKConfig()来将PLL作为时钟源。
8:等待PLL系统时钟开始工作
通过对函数RCC_GetSYSCLKSource()的返回值来判断PLL是否开始工作,如果未工作就一直等待。