stm32时钟配置总结

时间:2021-08-04 02:32:21

stm32时钟配置时钟源:

1,HSE(高速外部时钟)即常见的外接8M晶振方案;

2,HSI(高速内部时钟) 即8M内部振荡时钟方案;

3,LSE(低速外部时钟)即常见的32.768Khz晶振方案;

4,LSI(低速内部时钟)即40Khz的内部震荡时钟方案;

5,PLL(锁相环技术)时钟倍频技术方案;

内部时钟因为精度问题,一般不予以考虑。我们常见的应用办法是,HSE外界8M晶振,然后通过PLL将时钟倍频的时钟配置方案。

stm32时钟配置总结

正如上图所示,我们硬件上要做的是在OSC_IN和OSC_OUT引脚接入8M的晶振电路,软件上要实现的是将8M的HSE经

PLL转化为系统时钟,进而为各路总线使用。

具体代码实现如下:

 void RCC_Configuration(void)
{
//选择HSE时钟
RCC->CR|=(<<);
//等待HSE稳定
while(!(RCC->CR>>));
//PLL时钟来源选择HSE
RCC_CFGR|=(<<);
//PLL倍频系数选择:9(9*8M=72M)
RCC_CFGR|=(<<);
//FLASH的延时周期为2周期
FLASH->ACR=0x32;
//PLL时钟使能
RCC->|=(<<);
//等待PLL时钟稳定
while(!(RCC>>));
//配置系统时钟为PLL时钟
RCC_CFGR|=(<<);
//配置APB1=36M;APB2和AHB都为72M
RCC_CFGR|=(<<);
//等待系统时钟稳定
while((RCC_CFGR&(uint32_t)0x0c)!=(uint32_t)0x08);
}