STM32F10xxx支持3种复位形式,即系统复位、电源复位和备份域复位。
系统复位将复位除时钟控制器CSR中的复位标志位和备份域寄存器外的所有寄存器。当下列事件之一发生时,将产生系统复位。
(1)NRST引脚上出现低电平(外部复位),如图3-11所示:此时的复位效果与需要的时间、MCU供电电压、复位阈值等相关。为了使芯片充分复位,在工作电压3.3V下,复位时间设置为200ms。
图3-11 外部复位电路
在图3-11中,复位源将最终作用于NRST引脚,并在复位过程中保持低电平,复位入口矢量固定为地址0x00000004。
(2)窗口看门狗计数终止(WWDG复位)。
(3)独立看门狗计数终止(IWDG复位)。
(4)软件复位(SW复位):通过设置相应的控制寄存器位来实现。
(5)低功耗管理复位:进入待机模式或停止模式时引起的复位。
可通过查看控制/状态寄存器(RCC_CSR)中的复位标志来识别复位源。
电源复位能复位除备份域寄存器外的所有寄存器。当以下事件之一发生时,将产生电源复位。
(1)POR/PDR:STM32集成了一个POR/PDR电路,当供电电压达到2V时,系统能正常工作。只要 V DD 低于特定的阈值 V POR/PDR ,就不需要外部复位电路,STM32一直处于复位模式。P OR/P DR的波形图如图3-12所示。
图3-12 POR/PDR的波形图
(2)从待机模式中返回:芯片内部的复位信号会在NRST引脚上输出,脉冲发生器保证每个外部或内部复位源都能有至少20μs的脉冲延时;NRST引脚被拉低而产生外部复位时将产生复位脉冲。
当以下事件之一发生时,将产生备份域复位。
(1)SW复位:备份域复位可通过设置备份域控制寄存器(RCC_BDCR)中的BDRST位来产生。
(2)电源复位:在V DD 和V BAT 二者掉电的前提下,V DD 或V BAT 上电将引发备份域复位。
复位方式总结如表3-3所示。
表3-3 复位方式总结