理解时钟的概念,是开始学习嵌入式系统的第一步。
下图为时钟树。主要包括晶振,振荡电路,有源,无源,PLL锁相环,分频,倍频的概念。
时钟树中包括了各种时钟配置的过程。我们各个外设的时钟配置,外部晶振和外部时钟的选择,内部时钟源的选择,HSI,HSE,SYSCLK,PLLCLK等等。
外部时钟接入的方式有如下图两种。
RCC->CR |= (uint32_t)0x00000001;
内部8M振荡器开启。
RCC->CFGR &= (uint32_t)0xF8FF0000;
/* Reset HSEON, CSSON and PLLON bits */
RCC->CR &= (uint32_t)0xFEF6FFFF;
/* Reset HSEBYP bit */
RCC->CR &= (uint32_t)0xFFFBFFFF;
/* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
RCC->CFGR &= (uint32_t)0xFF80FFFF;
RCC->CIR = 0x009F0000;