四、STM32F103标准库内部时钟64M配置

 stm32f103内部时钟64M配置

//配置内部时钟64MHZ
void SysclkInit64()
{															
	RCC_DeInit(); 											//将外设RCC寄存器重设为缺省值  
	RCC_HSICmd(ENABLE); 									//使能内部时钟  HSI
	while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);		//等待HSI就绪 
	 
	RCC_HCLKConfig(RCC_SYSCLK_Div1);   						//设置AHB时钟MAX72MHz(HCLK)     RCC_SYSCLK_Div1——AHB时钟 = 系统时钟  
	RCC_PCLK2Config(RCC_HCLK_Div1);   						//设置高速AHB时钟MAX72MHz(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK     
	RCC_PCLK1Config(RCC_HCLK_Div2); 						//设置低速AHB时钟MAX36Mhz(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK / 2
	
	FLASH_SetLatency(FLASH_ACR_LATENCY_2);					//设置等待周期
															//1. 这些选项应与闪存存储器的访问时间一起使用。等待周期体现了系统时钟(SYSCLK)频率与闪存访问时间的关系:
															//0等待周期,当 0 < SYSCLK < 24MHz
															//1等待周期,当 24MHz < SYSCLK ≤ 48MHz
															//2等待周期,当 48MHz < SYSCLK ≤ 72MHz
	FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);	//设置Flash预读取
	
	RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);	//设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz    
	RCC_PLLCmd(ENABLE); 	 								//使能PLL *///这里使用的内部时钟所以不能被 失能 
	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; 	//检查指定的RCC标志位(PLL准备好标志)设置与否等待是否配置成功    
	
	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  			//设置系统时钟(SYSCLK)  
															//选择哪一个做为时钟   
															//0x00:HSI作为系统时钟   RCC_SYSCLKSource_HSI
															//0x04:HSE作为系统时钟 	RCC_SYSCLKSource_HSE
    														//0x08:PLL作为系统时钟 	RCC_SYSCLKSource_PLLCLK 
	while(RCC_GetSYSCLKSource() != 0x08);					//需与被选择的系统时钟对应起来,RCC_SYSCLKSource_PLL        	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值