STM32的复位功能
- 系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的复位数值。(按键复位和软件复位属于系统复位)
- 电源复位: 电源复位将复位除了备份区域外的所有寄存器。
- 后备域复位: 备份区域拥有两个专门的复位,它们只影响备份区域 。
STM32的时钟
时钟是什么?
时钟可以简单理解为“心跳”。对于电子器件来说,时钟就是它的心跳。STM32芯片,会根据程序给定它的时钟节拍来工作。常说的72Mhz、480Mhz,就是指STM32的主时钟(系统时钟)频率。STM32芯片就以这样的频率,在芯片内部做着各种器件的同步工作。
STM32的时钟来源
- 三种不同的时钟源可被用来驱动系统时钟(SYSCLK):
- HSI振荡器时钟(高速内部时钟)
- HSE振荡器时钟(高速外部时钟)
- PLL时钟(锁相环倍频时钟)
- 二级时钟源:
- 40kHz低速内部RC(LSI RC)振荡器
- 32.768kHz低速外部晶体(LSE晶体),多用于RTC外设
补充:对于器件而言,时钟频率越高,器件的工作速度越快,性能也就更强,但功耗也会越大
可见《STM32F103xCDE_数据参考手册》
STM32的时钟树设计
具体时钟源的介绍见官方数据参考手册
下面我们直接使用CubeMX来配置时钟
在CubeMX里我们可以在RCC外设里进行时钟源的选择,有高速时钟和低速时钟,时钟来源可以是用户输入也可以是时钟晶振,通常选择晶振
选择高速时钟,低速不选,然后来到时钟配置。
系统时钟有三个来源
- 使用HSI时钟信号。HSI由内部8MHz的RC振荡器产生。如果HSE晶体振荡器失效, HSI时钟会被作为备用时钟源。
- 直接使用HSE高速外部时钟信号。
- 使用PLL倍频
在STM32中,我们一般选择HSE作为PLL倍频的时钟源输入,最终通过PLL来倍频从而作为系统的主时钟(72MHZ、180MHZ、480MHZ)
接着我们参考CDE手册里的时钟标准工作频率来配置
同样也可以参考F10x中文参考手册的时钟树
首先选择时钟来源为PLL
然后配置AHB高速时钟总线为72MHZ,PLL以及APB1和APB2的时钟会自动配置
具体每个时钟的去向和用途(用于哪些外设)可以参考数据手册的时钟树说明
对STM32上的时钟,具体怎么配置,根据需求决定,一般不做改变。
时钟频率选取越高,功耗也会更高。 另一方面要考虑芯片的工作条件,根据芯片运行的工作条件选取时钟频率。
生成keil工程