STM32待机模式和独立看门狗的协调
使用stm做低功耗项目,往往会在主要程序处使用独立看门狗防止程序跑飞。但是看门狗一旦被开启,就只有复位才能够将其关闭,这显然就和待机模式产生了冲突。
解决办法
1.主要程序执行完毕后,使用软件复位关闭独立看门狗 2.之后根据复位的类型执行相应的程序(复位类型参考RCC_CSR寄存器) (1)如果是软件复位则直接进入待机模式 (2)如果不是软件、上电/掉电和看门狗复位则执行主要程序并且开启看门狗
另外
1.在用RTC闹钟唤醒待机模式时,(LSI作为RTC的时钟源)出现软复位和待机复位后,RTC日历的时间异常的情况。主要是LSI作为时钟源时,其配置在复位之后也会被复位,所以每次复位后要重新配置。 2.设置闹钟唤醒的时候千万要注意值的正确,不能出现数溢出的情况(比如15:36:60)。 3.stm32l151c8t6内部的37kHz的LSI(分频296*125),测试误差在1min/h。