STM32获取复位源
代码实现
/*
* 函数名称:Get_MCU_ResetSource
* 输入参数:None
* 返 回 值:None
* 作 者:Barry
* 功能描述:获取单片机的复位源
* 修改记录:None
*/
static void Get_MCU_ResetSource(void)
{
/* 上电/掉电复位 */
if(RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET)
{
log_i(">This is power on reset.\r\n");
}
/* 复位脚复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_PINRST) != RESET)
{
log_i(">This is extern reset pin reset.\r\n");
}
/* 软件复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_SFTRST) != RESET)
{
log_i(">This is software reset.\r\n");
}
/* 独立看门狗复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
{
log_i(">This is iwdg reset.\r\n");
}
/* 窗口看门狗复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_WWDGRST) != RESET)
{
log_i(">This is wwdg reset.\r\n");
}
/* 低功耗复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_LPWRRST) != RESET)
{
log_i(">This is low power reset.\r\n");
}
/* MMU复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_MMURST) != RESET)
{
log_i(">This is MMU reset.\r\n");
}
/* RAM复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_RAMRST) != RESET)
{
log_i(">This is RAM reset.\r\n");
}
/* 备份域复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_BKPEMC) != RESET)
{
log_i(">This is BKP reset.\r\n");
}
/* 保持域复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_RETEMC) != RESET)
{
log_i(">This is RET reset.\r\n");
}
/* BOR复位 */
else if(RCC_GetFlagStatus(RCC_FLAG_BORRST) != RESET)
{
log_i(">This is BOR reset.\r\n");
}
/* 清除复位标志 */
RCC_ClrFlag();
}