如何在上电时获取MCU的复位源

简介: 如何在上电时获取MCU的复位源

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();
}
相关文章
|
6月前
|
监控 前端开发
STM32F103标准外设库——RCC时钟(六)
STM32F103标准外设库——RCC时钟(六)
340 0
STM32F103标准外设库——RCC时钟(六)
|
6月前
|
内存技术
STM32F103 五个时钟源
STM32F103 五个时钟源
426 0
|
传感器 编解码 IDE
ESP32开发板引脚介绍【附有引脚使用实例】
ESP32开发板引脚介绍👨‍🏫内容1:背景👨‍⚖️内容2:限制类引脚👨‍💻内容3:ESP32 周边设备🍉文末备注 👨‍🏫。
ESP32开发板引脚介绍【附有引脚使用实例】
|
网络协议 IDE 开发工具
基于ESP8266远程舵机的控制与实现
基于ESP8266远程舵机的控制与实现
1600 0
基于ESP8266远程舵机的控制与实现
|
6月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
183 1
单片机 (MCU) 如何才能不死机之 IIC 操作
单片机 (MCU) 如何才能不死机之 IIC 操作
|
6月前
STM32CubeMX配置时钟无法使用高速外部时钟HSE
STM32CubeMX配置时钟无法使用高速外部时钟HSE
241 0
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
376 0
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
|
存储 开发工具 芯片
ZYNQ-UART串口中断测试
ZYNQ-UART串口中断测试
712 0
ZYNQ-UART串口中断测试
|
测试技术 芯片
初始化串口后,低功耗模式下电流高是怎么回事?
初始化串口后,低功耗模式下电流高是怎么回事?