STM32 HAL 复位源识别
STM32启动后可以识别本次启动是对应哪一种复位源,从而可以根据复位源的状态,做一些特殊处理。
HAL库的复位源识别
以下代码,识别是那种方式进行复位的,只需要将自己在那种方式复位运行的程序添加进去即刻,在这里面尽量进行一些事件更改,不要进行长时间任务运行。
void Check_Rst(void)
{
my_printf(" CSR = %x\r\n", RCC->CSR);
if(__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) != RESET ) // NRST 引脚复位
{
my_printf("PIN reset \r\n");
}
if(__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) != RESET ) // 上电掉电复位
{
my_printf("POR/PDR reset \r\n");
}
if(__HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST) != RESET ) // 软件复位
{
my_printf("Software reset \r\n");
}
if(__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) != RESET ) // 独立看门狗复位
{
my_printf("Independent watchdog reset \r\n");
}
if(__HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST) != RESET ) // 窗口看门狗复位
{
my_printf("Window watchdog reset \r\n