OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5146|回复: 2

判断上电复位还是软件复位

[复制链接]

6

主题

8

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-12-30
在线时间
5 小时
发表于 2017-6-14 09:21:22 | 显示全部楼层 |阅读模式

我在用STM32F429开发产品,产品需要用到软件复位来做一些功能处理,如何判断软件复位还是上电复位?请各位大侠指点,谢谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2012-3-29
在线时间
18 小时
发表于 2017-6-14 11:03:10 | 显示全部楼层
本帖最后由 zhaoshan413 于 2017-6-15 08:38 编辑

HAL库
[mw_shl_code=c,true]/**
  * 系统复位处理函数
  */
void SysResetHandler(void) {
    if (__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) == SET)  { // 上电/掉电复位
        printf("\r\n> Power On Reset occurred....");
    } else if (__HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST) == SET)  { // 软件复位
        printf("\r\n> Soft Reset occurred....");
    } else if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) == SET)   { // 独立看门狗复位
        printf("\r\n> IWDG Reset occurred....");
    } else if (__HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST) == SET)   { // 窗口看门狗复位
        printf("\r\n> WWDG Reset occurred....");
    } else if (__HAL_RCC_GET_FLAG(RCC_FLAG_LPWRRST) == SET)   { // 低功耗复位
        printf("\r\n> Low-power Reset occurred....");
    } else if (__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) == SET)  { // NRST引脚复位
        printf("\r\n> External Reset occurred....");
    }
    __HAL_RCC_CLEAR_RESET_FLAGS();  // 清除复位标志
}[/mw_shl_code]




回复 支持 反对

使用道具 举报

4

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2017-3-11
在线时间
78 小时
发表于 2017-6-14 12:45:32 | 显示全部楼层
楼上啃不动啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 21:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表