STM使用外部时钟振荡器如何配置寄存器,我选择了RCC_HSE_Bypass,可是还是以内部rc震荡频率运行,求救
下面是我的时钟配置
RCC_DeInit();
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_Bypass); //使能HSE
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待HSE稳振
if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2); //2延时周期
RCC_HCLKConfig(RCC_SYSCLK_Div1); //系统时钟1分频 72M
RCC_PCLK2Config(RCC_HCLK_Div1); // APB最高时钟分频 72M
RCC_PCLK1Config(RCC_HCLK_Div2); //APB最低时钟分频 36M
RCC_ADCCLKConfig(RCC_PCLK2_Div4); //72M/4=18M
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); // 9倍频 8*9=72
/* Enable PLL */
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
下面是我的时钟配置
RCC_DeInit();
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_Bypass); //使能HSE
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待HSE稳振
if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2); //2延时周期
RCC_HCLKConfig(RCC_SYSCLK_Div1); //系统时钟1分频 72M
RCC_PCLK2Config(RCC_HCLK_Div1); // APB最高时钟分频 72M
RCC_PCLK1Config(RCC_HCLK_Div2); //APB最低时钟分频 36M
RCC_ADCCLKConfig(RCC_PCLK2_Div4); //72M/4=18M
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); // 9倍频 8*9=72
/* Enable PLL */
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
