STM32的最小系统

1、供电

2、复位

共分为系统复位、电源复位、备份域复位三种。

一、系统复位

其中除了时钟控制寄存器 CSR 中的复位标志和备份域中的寄存器外,系统复位会将其它全部寄 存器都复位为复位值。

只要发生以下事件之一,就会产生系统复位: 

1. NRST 引脚低电平(外部复位)

(STM32F的NRST是异步复位脚。
当NRST输入低电平的时候,MCU处于复位状态,重设所有的内部寄存器,及片内几十KB的SRAM。
当NRST从低电平变高时,PC指针从0地址开始。
但是复位的时候不会将STM32F片内RTC的寄存器以及后备存储器重置,因为它们是用电池通过专门的VBAT脚供电。
STM32中的NRST有施密特功能。大概在输入电压低于1.9V的时候将芯片复位。)

2. 窗口看门狗计数结束(WWDG 复位)

3. 独立看门狗计数结束(IWDG 复位) 

4. 软件复位(SW 复位)

5. 低功耗管理复位

软件复位 可通过查看 RCC 时钟控制和状态寄存器 (RCC_CSR) 中的复位标志确定。 要对器件进行软件复位,必须将 Cortex®-M7 应用中断和复位控制寄存器中的 SYSRESETREQ 位置 1。有关详细信息,请参见 Cortex®-M7 技术参考手册。
低功耗管理复位

引发低功耗管理复位的方式有两种: 1. 进入待机模式时产生复位: 此复位的使能方式是清零用户选项字节中的 nRST_STDBY 位。使能后,只要成功执行 进入待机模式序列,器件就将复位,而非进入待机模式。 2. 进入停止模式时产生复位: 此复位的使能方式是清零用户选项字节中的 nRST_STOP 位。使能后,只要成功执行进 入停止模式序列,器件就将复位,而非进入停止模式。

二、电源复位 

只要发生以下事件之一,就会产生电源复位: 1. 上电/掉电复位(POR/PDR 复位)或欠压 (BOR) 复位。 

2. 在退出待机模式时。 除备份域内的寄存器以外,电源复位会将其它全部寄存器设置为复位值(请参见 图 11)。 这些源均作用于 NRST 引脚,该引脚在复位过程中始终保持低电平。RESET 复位入口向量 在存储器映射中固定在地址 0x0000_0004。 芯片内部的复位信号会向 NRST 引脚上输出一个低电平脉冲。脉冲发生器可确保每个内部复位 源的复位脉冲都至少持续 20 µs。对于外部复位,在 NRST 引脚处于低电平时产生复位脉冲。

复位和时钟控制 (RCC) RM0385
备份域具有两个特定的复位,这两个复位仅作用于备份域本身(请参见 图 11)。
5.1.3 备份域复位 备份域复位会将所有 RTC 寄存器和 RCC_BDCR 寄存器复位为各自的复位值。BKPSRAM 不受此复位影响。BKPSRAM 的唯一复位方式是通过 Flash 接口将 Flash 保护等级从 1 切换 到 0。 只要发生以下事件之一,就会产生备份域复位: 1. 软件复位,通过将 RCC 备份域控制寄存器 (RCC_BDCR) 中的 BDRST 位置 1 触发。 2. 在电源 VDD 和 VBAT 都已掉电后,其中任何一个又再上电。

3、时钟:外部晶振(2个)




4、BOOT启动模式选择

STM32三种启动模式

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

1)用户闪存 = 芯片内置的Flash。
2)SRAM = 芯片内置的RAM区,就是内存啦。
3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。


在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:


BOOT1=x  BOOT0=0  从用户闪存启动,这是正常的工作模式。
BOOT1=0  BOOT0=1  从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1  BOOT0=1  从内置SRAM启动,这种模式可以用于调试。


5、下载电路(串口/JTAG/SWD)


6、后备电池(并不是最小系统必须的