先上程序看一下,使用内部时钟的好处就是可以节约成本但是倍频最多只能达到64MHZ

使用时需要注意  注释掉这个SystemInit();  时钟配置函数

 

//配置内置振荡器 36MHz
	RCC_DeInit(); /*将外设RCC寄存器重设为缺省值 */ 
	RCC_HSICmd(ENABLE); //使能内部时钟  HSI
	while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等待HSI就绪 
	 
	RCC_HCLKConfig(RCC_SYSCLK_Div1);   /*设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时*/  
	RCC_PCLK2Config(RCC_HCLK_Div1);   /* 设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK*/     
	RCC_PCLK1Config(RCC_HCLK_Div2); /*设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK / 2*/   

	 //下面这语句设置时钟频率  记住参考
	RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_9);/*设置PLL时钟源及倍频系数,频率为8/2*9=36Mhz*/    
	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
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	 
	 

 

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐