主程序中已经有配置系统时钟了,但配置了也达不到72MHZ,还是8MHZ,这是哪里设置不对吗?
void RCC_Configuration() //配置STM32的时钟 & 打开IO口时钟
{
ErrorStatus HSEStartUpStatus;//定义外部高速晶体启动状态枚举变量
RCC_DeInit();//复位RCC外部设备寄存器到默认值
RCC_HSEConfig(RCC_HSE_ON);//打开外部高速晶振
HSEStartUpStatus=RCC_WaitForHSEStartUp();//等待外部高速时钟准备好
if(HSEStartUpStatus==SUCCESS)//外部高速时钟已经准备好
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //选择FLASH预取指缓存的模,预取指缓存使能
FLASH_SetLatency(FLASH_Latency_2); //设置FLASH存储器延时时钟周期数 FLASH_Latency_2 2延时周期
RCC_HCLKConfig(RCC_SYSCLK_Div1);//配置AHB(HCLK)时钟=SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1);//配置APB2(PCLK2)时钟=AHB时钟
RCC_PCLK1Config(RCC_HCLK_Div2);//配置APB1(PCLK1)时钟=AHB 1/2时钟
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//配置PLL时钟=外部高速晶体时钟*9
RCC_PLLCmd(ENABLE);//使能PLL时钟
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL时钟就绪
{}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//配置系统时钟=PLL时钟
while(RCC_GetSYSCLKSource()!=0x08)//检查PLL时钟是否作为系统时钟
{}
}
}
多谢,已经解决了,是我的匹配电容的问题,刚开始是10pf,后来换成20pf就正常了!
一周热门 更多>