新手看了一下午。把系统时钟的设置自己总结了一下。写了以下程序。
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作为系统时钟
}
涵盖了系统时钟源的初始化。以后想选内部或外部晶振工作时是否可以套用这个子函数。有什么地方没设置完全大神们可否指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>