void init_HSE()
{
RCC_DeInit();//清除 所有时钟
RCC_HSEConfig(RCC_HSE_ON); //外部时钟起振
RCC_WaitForHSEStartUp();//等待外部时钟起振
RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟
RCC_PCLK1Config(RCC_HCLK_Div1);//RCC_HCLK_Div1: APB1 clock = HCLK APB1的时钟等于HCL的时钟
RCC_PCLK2Config(RCC_HCLK_Div1);// RCC_HCLK_Div2: APB2 clock = HCLK APB2的时钟等于HCL的时钟
RCC_PLLConfig( RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLL锁相环倍频因子为9,倍频的对象是外部时钟输入
RCC_PLLCmd(ENABLE); //打开锁相环
RCC_GetFlagStatus(RCC_FLAG_PLLRDY);//等待锁相环起振
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择PLL作为系统时钟
while(!(RCC_GetSYSCLKSource()==0x80));//PLL作为系统时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
}
这是我自己写的代码,不知道为什么系统时钟没有启动,不知道还缺了哪一步,求大神指教。 |