如何在上电时获取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();
}
相关文章
|
2月前
|
内存技术
STM32F103 五个时钟源
STM32F103 五个时钟源
228 0
|
12月前
|
传感器 编解码 IDE
ESP32开发板引脚介绍【附有引脚使用实例】
ESP32开发板引脚介绍👨‍🏫内容1:背景👨‍⚖️内容2:限制类引脚👨‍💻内容3:ESP32 周边设备🍉文末备注 👨‍🏫。
ESP32开发板引脚介绍【附有引脚使用实例】
|
网络协议 IDE 开发工具
基于ESP8266远程舵机的控制与实现
基于ESP8266远程舵机的控制与实现
1372 0
基于ESP8266远程舵机的控制与实现
|
2月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
98 1
|
2月前
STM32CubeMX配置时钟无法使用高速外部时钟HSE
STM32CubeMX配置时钟无法使用高速外部时钟HSE
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
303 0
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
|
11月前
IIC总线的硬件解析
IIC总线的硬件解析
121 0
|
11月前
|
传感器
STM32+ESP8266+QT客户端上位机显示DHT11温湿度与点灯
STM32+ESP8266+QT客户端上位机显示DHT11温湿度与点灯
可编程 USB 转串口适配器开发板参数设置
前述各种指令在参数修改完成后仅可当时生效,修改后的参数断电不保存。使用[SAVE]关键字可将当前参数保存至 EEPROM,使参数永久保存。
可编程 USB 转串口适配器开发板参数设置
|
网络安全 芯片
可编程 USB 转串口适配器开发板 时钟芯片参数读取与修改
DS1302 是实时时钟芯片,SPI 接口,可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。
可编程 USB 转串口适配器开发板 时钟芯片参数读取与修改