复位以及时钟控制(RCC)
复位
有三种复位
- 系统复位: 将复位除了时钟控制寄存器CSR中的复位标志和备份区域以内的寄存器以外的所有寄存器
- 电源复位: 复位除了备份区域以外的所有寄存器
- 后备域复位: 备份区有两个专门的复位, 只影响备份区域
当以下事件中的一件发生时,产生一个系统复位: 1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管理复位
通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源
当以下事件中之一发生时,产生电源复位: 1. 上电/掉电复位(POR/PDR复位) 2. 从待机模式中返回
当以下事件中之一发生时,产生备份区域复位。 79/754 1. 软件复位,备份区域复位可由设置备份域控制寄存器(RCC_BDCR)(见7.3.9节)中的 BDRST位产生。 2. 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。
- 备份域BKP
备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域 里,当VDD电源被切断,他们仍然由VBAT维持供电。用户可以在这一部分区域保存自己的数据
开发板上的电池对着一部分进行供电
RCC时钟
时钟是芯片的心跳, STM32有很多种时钟的来源, HSI高速内部时钟, HSE高速外部时钟, PLL, 锁相环倍频时钟, 还有一些二级时钟, 内部低速时钟LSI, LSE外部低速时钟32.768KHz(主要用于RTC)
使用不同的频率的时钟, 消耗的能量更高
使用CubeMX可以进行时钟的设置
使用CubeMX进行配置
在这里配置时钟源
外部的高速时钟通常是外部的晶振或者用户的输入
选择之后就可以使用时钟配置进行操作了
不设置的话默认使用的是HSI, 8MHz, 这里可以手动设置, 或者在系统时钟输入对应的数字自动生成
在数据手册中有各个时钟所对应的最高频率的时钟
互联型的芯片的某一些时钟并不是从系统时钟获取时钟的, 需要单独考虑
使用F4以及H7系列的芯片的时候可以通过配置提高最高的时钟频率, 但是会增加芯片的耗能