STM32时钟配置,时钟树

STM32F105库函数默认使用的是25MHZ晶振:
   通过下面配置,最终得到系统时钟72MHZ:
   /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
   /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */                       
    RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |
             RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);
  
如果使用的是其他的晶振怎么配置呢,下面以12M晶振为例
    通过下面配置既可,最终得到系统时钟72MHZ:
    /* PLL2 configuration: PLL2CLK = (HSE / 12) * 12= 12 MHz */
    /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 1 = 12 MHz */                            RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV12| RCC_CFGR2_PLL2MUL12 |
                             RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV1);


    /* PLL configuration: PLLCLK = PREDIV1 * 6 = 72 MHz */ 
    RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | 
                            RCC_CFGR_PLLMULL6); 

下面是STM32F105的时钟树,对照不能理解STM32F105时钟为什么要这样配置
STM32时钟配置,时钟树_第1张图片

 

你可能感兴趣的:(STM32)