如何在上电时获取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();
}
相关文章
|
7月前
|
内存技术
STM32F103 五个时钟源
STM32F103 五个时钟源
528 0
|
传感器 编解码 IDE
ESP32开发板引脚介绍【附有引脚使用实例】
ESP32开发板引脚介绍👨‍🏫内容1:背景👨‍⚖️内容2:限制类引脚👨‍💻内容3:ESP32 周边设备🍉文末备注 👨‍🏫。
ESP32开发板引脚介绍【附有引脚使用实例】
|
7月前
|
存储
MCS-51单片机的中断源
MCS-51单片机的中断源
308 1
|
6月前
|
网络协议
了解AT指令以及STM32F103如何通过ESP8266连接到WiFi
AT指令是一组用于控制调制解调器的命令,最早由Hayes公司为其智能调制解调器开发。如今,AT指令已被广泛应用于各种通信模块中,包括GSM、Bluetooth和WiFi模块。AT指令通常以“AT”开头,后跟特定的命令和参数。通过这些指令,我们可以执行一系列操作,如设置网络参数、发送数据和查询状态等。
274 0
|
7月前
STM32CubeMX配置时钟无法使用高速外部时钟HSE
STM32CubeMX配置时钟无法使用高速外部时钟HSE
309 0
|
7月前
|
存储 传感器 算法
【Arduino环境下驱动合宙esp32c3单片机基本外设】
【Arduino环境下驱动合宙esp32c3单片机基本外设】
477 1
|
7月前
|
Linux API 开发者
设备树知识小全(九):GPIO、时钟、pinmux连接
设备树知识小全(九):GPIO、时钟、pinmux连接
345 0
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
397 0
STM32:USART串口外设(内含:1.USART简介+2.USART基本结构+3.数据帧+4.起始位侦测+5.数据采样+6.波特率发生器)
|
存储 开发工具 芯片
ZYNQ-UART串口中断测试
ZYNQ-UART串口中断测试
768 0
ZYNQ-UART串口中断测试
|
测试技术 芯片
初始化串口后,低功耗模式下电流高是怎么回事?
初始化串口后,低功耗模式下电流高是怎么回事?