STM32 待机模式与看门狗和谐相处

本文探讨了STM32在standbymode下看门狗引起的复位问题,提出了一种通过系统复位及EEPROM标志位判断来有效避免因看门狗复位导致的MCU频繁重启的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于在standby mode,看门狗仍然能继续工作,但是其他时钟都关闭了,没法喂狗,这样会导致mcu不停复位。网上找的方法如下:1. 开启RTC,定期喂狗后再次睡眠。该方法视乎可行,但是不够省电。

        2,使用复位标志,区分上电复位和看门狗复位。

if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)

但是实际测试有问题,STM32无法区分上电复位和看门狗复位。

 

为此借鉴了其他方法总结了如下结果:

1. MCU 正常启动后,在进入省电模式的函数那里把省电内容替换位系统复位。

2. 在省电模式(即系统复位)后,mcu会重启,初始化IO口读取存储在EEPROM的省电标志位,如果位1,直接开启看门狗并运行系统,如果为0,则进入休眠函数。为什么这种方法可行,是因为在进入休眠模式之前看门狗还没有启用,所有就不存在喂狗问题。

此外如果是上电立马开机,则不用判断标志位,且发生看门狗复位也能开机。如果是需要按键开机,则需要判断省电标志位, 如果是看门狗复位也需要判断标志位, 以此判断是否开机。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值