STM32时钟

STM32 中,有五个时钟源,为 HSIHSELSILSEPLL。 从时钟频率来分可以分为高速时钟源和低速时钟源,在这 5 个中 HISHSE 以及 PLL 是高速时钟, LSI LSE 是低速时钟。

从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中 HSE LSE 是外部时源,其他的是内部时钟源


STM32时钟_第1张图片


对于上图的具体解释请参考STM32开发手册库函数版本4.3章节

下来就是如何对其进行配置了,第一:在系统上电之后,会采用内部时钟作为系统时钟(参考STM32中文参考手册6.26)

void Stm32_Clock_Init(u8 PLL)
{
	unsigned char temp=0;   
	MYRCC_DeInit();		  //   对向量中断表的一些设置
 	RCC->CR|=0x00010000;  //       外部时钟使能:  具体参考时钟控制寄存器RCC_CR
	while(!(RCC->CR>>17));//         
	RCC->CFGR=0X00000400; //          对APB1进行分频  具体参考STM32中文参考手册6.3.2 时钟配置寄存器(RCC_CFGR)   
	PLL-=2;				  //
	RCC->CFGR|=PLL<<18;   //
	RCC->CFGR|=1<<16;	  //PLLSRC ON 
	FLASH->ACR|=0x32;	  //FLASH 2
	RCC->CR|=0x01000000;  //PLLON
	while(!(RCC->CR>>25));//
	RCC->CFGR|=0x00000002;//PLL         确定PLL作为系统时钟        至于为什么要对APB1进行分频还暂不了解(APB1是片上外设(例如I/O口)的时钟控制器)
	while(temp!=0x02)     //
	{   
		temp=RCC->CFGR>>2;
		temp&=0x03;
	}    
}		    
这段程序对系统时钟进行初始化。具体参照时钟树及时钟的几个寄存器


你可能感兴趣的:(杂谈笔记)