CH32V307提供了3钟复位形式:
电源复位
系统复位
后备区域复位
1. 电源复位
产生电源复位的条件为:
上电/掉电复位(POR/PDR复位)
从待机模式下唤醒
电源复位发生时,将复位除了备份区域的所有寄存器。PC指针固定到0x00000000。
此时的后备寄存器需由VBAT供电,如果同VDD供电,后备区域寄存器将同步复位。
2. 系统复位
产生系统复位的条件为:
NRST引脚上的低电平信号(外部复位)
窗口看门狗计数终止(WWDG复位)
独立看门狗计数终止(IWDG复位)
软件复位(SW复位)
低功耗管理复位
通过配置 PFIC_CFGR 寄存器 SYSRESET 位置 1 ,或者配置 PFIC_SCTLR 寄存器 SYSRESET 位置 1,产生软件复位。
将用户选择字节中的 STANDY_RST 位置0,将启用待机模式复位,这时进入待机模式会产生低功耗管理复位;将用户选择字节中的 STOP_RST 位置0,将启用停止模式复位,这时进入停止模式会产生低功耗管理复位
系统复位时, 除了控制/状态寄存器 `RCC_RSTSCKR` 中的复位标志和后备区域的寄存器(V<sub>BAT</sub>单独供电),其余所有寄存器将复位。
所以可以通过寄存器 `RCC_RSTSCKR` 中的复位标志查看上一次系统复位原因,参考代码如下:
参考代码 - 查看系统复位原因
3. 后备区域复位
后备区域复位发生时,只会复位后备区域寄存器,包括后备寄存器、RCC_BDCTLR 寄存器(RTC 使能和LSE 振荡器)。其产生条件包括:
软件复位,将 RCC_BDCTLR 寄存器 的 BDRST 位置1, 或者将 RCC_APB1PRSTR 寄存器的 BKPRST 位置1
在VDD和VBAT都掉电的前提下,由VDD或VBAT上电引起
|