很多时候,需要判断到底是什么方式启动,是硬件启动,还是软件重启。
参考: STM32判断软件、硬件启动(看门狗复位启动与上电启动)
bool is_software_restart(void)
{
__IO uint32_t StartUpCounter = 0;
ErrorStatus status = ERROR;
FlagStatus HSEStatus = RESET;
if (RCC_GetFlagStatus(RCC_FLAG_SFTRST) != RESET)
{
printmsg("软件启动。");
status = SUCCESS;
}
else
{
printmsg("硬件等方式启动。");
status = ERROR;
}
return status;
}