仿真的时候一直停在这里//检查是否将HSE 9倍频后作为系统时钟
,屏蔽就得了,何解
void RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; //SystemInit(); //完全可以使用此函数配置,但是为了学习先不用 RCC_DeInit(); //复位RCC模块的寄存器,复位成缺省值
RCC_HSEConfig(RCC_HSE_ON); //开启HSE时钟,用HSE的时钟作为PLL的时钟源 HSEStartUpStatus = RCC_WaitForHSEStartUp(); //获取HSE启动状态 if(HSEStartUpStatus == SUCCESS) //如果HSE启动成功
{
FLASH_PrefetchBufferCmd(ENABLE); //开启FLASH的预取功能
FLASH_SetLatency(FLASH_Latency_2); //FLASH延迟2个周期
RCC_HCLKConfig(RCC_SYSCLK_Div1); //配置HCLK,PCLK2,PCLK1,PLL RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); RCC_PLLCmd(ENABLE); //启动PLL while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET) { } //等待PLL启动完成 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //配置系统时钟
while(RCC_GetSYSCLKSource() !=0x80) { } //检查是否将HSE 9倍频后作为系统时钟
} }
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
} |