STM32时钟树配置

STM32时钟手动配置,以使用HSE外部振荡器为例

1、手动重新配置时钟,必须复位RCC时钟寄存器

    函数:RCC_DeInit();

2、使能HSE

    函数:RCC_HSEConfig(RCC_HSE_ON);

3、等待HSE启动稳定

    函数:RCC_WaitForHSEStartUp();

4、如果启动成功,则进行倍频、分频配置

if( HSEStatus == SUCCESS )
{
/* 5、使能预取值 */
FLASH->ACR |= FLASH_ACR_PRFTBE;
/* 6、FLASH等待时间 */
FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
                FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;
/* 7、配置总线时钟 */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
/* 8、选择PLL时钟源,配置倍频因子 */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul);
/* 9、使能PLL */
RCC_PLLCmd(ENABLE);
/* 10、等待PLL稳定 */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
/* 11、选择PLLCLK为系统时钟 */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* 12、等待系统时钟切换完成 */
while(RCC_GetSYSCLKSource() != 0x08);

}

        else
{
用户进行错误处理
}


手动需要配置的时候,必须注意的是,需要复位RCC寄存器以及等待时钟启动稳定

你可能感兴趣的:(STM32时钟树配置)