stm32时钟配置总结
stm32时钟配置时钟源:
1,HSE(高速外部时钟)即常见的外接8M晶振方案;
2,HSI(高速内部时钟) 即8M内部振荡时钟方案;
3,LSE(低速外部时钟)即常见的32.768Khz晶振方案;
4,LSI(低速内部时钟)即40Khz的内部震荡时钟方案;
5,PLL(锁相环技术)时钟倍频技术方案;
内部时钟因为精度问题,一般不予以考虑。我们常见的应用办法是,HSE外界8M晶振,然后通过PLL将时钟倍频的时钟配置方案。
正如上图所示,我们硬件上要做的是在OSC_IN和OSC_OUT引脚接入8M的晶振电路,软件上要实现的是将8M的HSE经
PLL转化为系统时钟,进而为各路总线使用。
具体代码实现如下:
1 void RCC_Configuration(void)
2 {
3 //选择HSE时钟
4 RCC->CR|=(1<<16);
5 //等待HSE稳定
6 while(!(RCC->CR>>16));
7 //PLL时钟来源选择HSE
8 RCC_CFGR|=(1<<16);
9 //PLL倍频系数选择:9(9*8M=72M)
10 RCC_CFGR|=(7<<18);
11 //FLASH的延时周期为2周期
12 FLASH->ACR=0x32;
13 //PLL时钟使能
14 RCC->|=(1<<24);
15 //等待PLL时钟稳定
16 while(!(RCC>>24));
17 //配置系统时钟为PLL时钟
18 RCC_CFGR|=(1<<1);
19 //配置APB1=36M;APB2和AHB都为72M
20 RCC_CFGR|=(4<<8);
21 //等待系统时钟稳定
22 while((RCC_CFGR&(uint32_t)0x0c)!=(uint32_t)0x08);
23 }
posted on 2016-08-25 08:04 HelloWorldTotti 阅读(613) 评论(0) 编辑 收藏 举报