如何在上电时获取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 五个时钟源
STM32F103 五个时钟源
426 0
|
6月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
183 1
|
6月前
|
Linux
Rockchip系列之LED状态灯 以太网收发数据包流程以及控制状态显示(2)
Rockchip系列之LED状态灯 以太网收发数据包流程以及控制状态显示(2)
97 1
单片机 (MCU) 如何才能不死机之 IIC 操作
单片机 (MCU) 如何才能不死机之 IIC 操作
|
6月前
STM32CubeMX配置时钟无法使用高速外部时钟HSE
STM32CubeMX配置时钟无法使用高速外部时钟HSE
240 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串口中断测试
|
存储 芯片 内存技术
STM32单片机串口一键下载电路与操作方法详解
STM32单片机串口一键下载电路与操作方法详解
751 0
|
网络安全 芯片
可编程 USB 转串口适配器开发板 时钟芯片参数读取与修改
DS1302 是实时时钟芯片,SPI 接口,可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。
可编程 USB 转串口适配器开发板 时钟芯片参数读取与修改
|
物联网 芯片 开发者
串口初始化及RFID上电复位|学习笔记
快速学习串口初始化及RFID上电复位
串口初始化及RFID上电复位|学习笔记