本帖最后由 19996 于 2021-5-13 17:31 编辑
浅谈关于低功耗模式下,系统会不断自启动解决办法
概述:单片机(STM32F407VET6)需要设置低功耗模式,当程序运行到低功耗状态下看门狗不会关闭,还会自动进行复位操作。 1、 方法一 设置RTC定时唤醒然后喂狗,保证系统不会被看门狗复位。相当于闹钟唤醒,然后喂狗再睡下。时间计算合理,功耗也是相对较低的方案。 2、 方法二(推荐此法,已验证) 设定Flash或者后备寄存器存储当前状态变量,然后复位不会清除。然后通过一次软复位进行重运行程序并取消初始化操作。这样实现了看门狗的关闭操作,详细见下图流程图。 注释:关机状态:BKP_REG10=0x1010 正常运行状态:BKP_REG10=0x0101 正在关机状态:BKP_REG10=0x0011 BKP_REG9=0x0505 3、 方法三 利用看门狗复位和软复位,以及其他的复位方式,通过RCC时钟控制和状态寄存器(RCC_CSR)判断是属于何种复位。该寄存器的使用可以参考ST的中文参考手册。 每个产品使用均不一样,逻辑是可以调整的,唯一不变的是 1、 RCC_CSR是可以直接读取其值,进行判定是何种复位,该寄存器不会被复位清除。 2、 看门狗一旦开启,除了复位将无法关闭。
3、 仅仅只针对STM32F407VET6
|