读取复位标志位
// 1. 读取复位标志
uint32_t resetFlags = RCC_GetFlagStatus(RCC_FLAG_PINRST) ? 1 : 0; // NRST 引脚复位
resetFlags |= RCC_GetFlagStatus(RCC_FLAG_PORRST) ? 2 : 0; // 上电/掉电复位
resetFlags |= RCC_GetFlagStatus(RCC_FLAG_SFTRST) ? 4 : 0; // 软件复位
resetFlags |= RCC_GetFlagStatus(RCC_FLAG_IWDGRST) ? 8 : 0; // 独立看门狗复位
resetFlags |= RCC_GetFlagStatus(RCC_FLAG_WWDGRST) ? 16 : 0; // 窗口看门狗复位
resetFlags |= RCC_GetFlagStatus(RCC_FLAG_LPWRRST) ? 32 : 0; // 低功耗复位
//0x01 (PINRST): 外部 NRST 引脚复位。重点查硬件复位电路、干扰、电源跌落。
//0x02 (PORRST/PDRST): 上电/掉电复位。强烈指向电源问题! (电压低于掉电复位阈值)。
//0x04 (SFTRST): 软件复位。检查程序是否调用了 NVIC_SystemReset()。
//0x08 (IWDGRST): 独立看门狗复位。程序跑飞、阻塞未喂狗。
//0x10 (WWDGRST): 窗口看门狗复位。喂狗时机不对或在窗口外喂狗。
//0x20 (LPWRRST): 低功耗模式唤醒复位。通常与进入 Stop/Standby 模式有关。
// 2. 清除复位标志 (非常重要!否则会一直保留)
RCC_ClearFlag();

浙公网安备 33010602011771号