关于STM32系统时钟的设置

2019-10-15 23:00发布

新手看了一下午。把系统时钟的设置自己总结了一下。写了以下程序。
void Stm32_Clock_Init()
{
        RCC_DeInit();        //RCC恢复默认值,必备步骤
        //*设置内部高速晶振为系统时钟源*//       
//        RCC_HSICmd(ENABLE);//内部高速晶振使能
//                while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)==RESET);//等待内部高速晶振起振       
//        RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_4);//设置PLL倍频时钟源和倍频数
//        RCC_PLLCmd(ENABLE);//使能PLL倍频
//        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL时钟起振
//        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟源来自PLL
//        while(RCC_GetSYSCLKSource() != 0x08);//检查系统时钟源是否来自PLL

        //*设置外部高速晶振为系统时钟源*//               
        RCC_HSEConfig(RCC_HSE_ON);//外部高速晶振使能
        while(RCC_GetFlagStatus(RCC_FLAG_HSERDY)==RESET);//等待外部高速晶振起振
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_3);//设置PLL倍频时钟源和倍频数
        RCC_PLLCmd(ENABLE);//使能PLL倍频
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL时钟起振
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟源来自PLL
        //        while(RCC_GetSYSCLKSource() != 0x08);//检查系统时钟源是否来自PLL
    //  0x00:HSI 作为系统时钟   
    //  0x04:HSE作为系统时钟   
    //  0x08:PLL作为系统时钟  
}


涵盖了系统时钟源的初始化。以后想选内部或外部晶振工作时是否可以套用这个子函数。有什么地方没设置完全大神们可否指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。