1. 概念
Reset and clock control复位和时钟控制
1.1 什么是复位?
包含系统复位,电源复位,备份域复位三种。
1.1.1 系统复位:
除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的数值。
触发:NRST引脚的低电平(外部复位)、窗口看门狗计数终止(WWDG复位)、独立看门狗计数终止(WDG复位)、软件复位(SW复位)、低功耗管理复位。
1.1.2 电源复位:
除了备份区域外的所有寄存器。
触发:上电/掉电复位(POR/PDR复位)、从待机模式中返回
1.1.3 备份域复位:
拥有两个专门的复位,只影响备份区域。
触发:软件复位,设置备份域控制寄存器RCC_BDCR中的BDRST位产生、在Vdd和Vbat两者掉电的前提下,Vdd或Vbat上电。
1.2 什么是时钟?
时钟就是心跳,每个器件都需要心跳去维持。
复位后,芯片会配置一个默认的时钟。
1.2.1 驱动系统时钟(SYSCLK)的时钟源?
时钟的来源:HSI、HSE、PLL
1.2.2 二级时钟源?
40kHz低速内部RC(LSI),用于驱动独立看门狗、驱动RTC、停机待机模式下自动唤醒系统
32.768kHz的外部低速LSE、驱动RTC。
备注:任何一个时钟源可以进行单独的关闭和启动,优化功耗。
1.2.3 HSE的两种时钟源选择?
1.外部晶体/陶瓷谐振器(晶体模式):使用MCU内部电路,占用SOC_IN和SOC_OUT两个引脚,通常选用无源晶振
2.外部时钟源(旁路模式):不使用MCU内部电路,占用一个SOC_IN引脚,通常使用有源晶振
1.2.4 时钟树?
方便对时钟的管理和应用。
1.2.5 时钟的选择?
时钟频率越高,功耗越大。要根据芯片的工作条件去选择合适的时钟。
2. 配置时钟的步骤
1.选择系统时钟的时钟源(如果是外部时钟,要选择晶振)
2.选择分频和倍频因子
3.初始化各种外设的分频因子(AHB、APB)