STM32时钟控制
时钟总体设计
-
时钟源:
纯内部时钟源:CPU内部自动时钟,方便但不精准
内外部时钟源:时钟产生振荡电路在CPU内部,但晶振在外部(通用)
纯外部时钟源:CPU外部产生时钟,无需晶振,通过引脚输入到CPU内部
-
PLL(锁相环电路):负责时钟倍频功能
-
时钟通道与流向、分频
-
完全独立的多个时钟:STM32含有多个相互独立的时钟。
时钟框图详解
-
总体配置
2套独立时钟:HSx和LSx
纯内部:HSI、LSI
内外部:HSE、LSE
纯外部:OSC_IN、OSC32_IN
-
PLL
2个可选PLL源(PLLSRC控制)
倍频可设置(PLLMUL控制) -
分频
时钟节点名称:
HSI、HSE、LSI、LSE、PLLCLK、SYSCLK、USBCLK、HCLK、FCLK、PCLK1、PCLK2、ADCCLK、RTCCLK、IWDGCLK -
systick和MCO
RCC通过AHB时钟8分频后供给Cortex系统定时器的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex AHB时钟作为SysTick时钟。
MCO即主时钟输出,为其他设备服务。 -
时钟相关的寄存器:注意控制门、时钟节点等
系统默认上电后用内部时钟,需编程切换内外部时钟。
基地址查memory map图得到,然后配合偏移量得到寄存器地址。
寄存器位一般有三种:状态位、开关位、设置值位
RCC_CR 0x40021000
RCC_CFGR 0x40021004
RCC_APB2RSTR 复位外设时钟
RCC_AHBENR 外设时钟开关