STM32低功耗模式结合看门狗
前言
最近做到一个需求要使用STM32的低功耗模式进行长时间待机应用,每隔十分钟发送一次数据到服务器上,当不发送的时候就处于低功耗模式。在经过一段时间的测试以后发现板子过三四天左右就没有数据上传服务器了,因为测试的时间很长,问题排查起来非常麻烦,所以干脆增加看门狗看能不能解决问题。
存在问题
看门狗使用了内部的LSI时钟,在40KHZ的频率下最长的喂狗等待时间也只有26S多,对于需要低功耗使用的场景下,这种频繁的唤醒喂狗操作是比较致命的(费电),因此就想在低功耗的时候关闭看门狗,唤醒正常工作以后再打开看门狗工作,查阅资料以后发送看门狗居然没法在低功耗模式下关闭。。。
解决方法
参考网上大佬的方法最后实现了该功能,简单描述就是在开机时通过Flash中的标志进行判断本次重启是由于看门狗导致的还是系统正常导致的(人为使用软复位重启)。
正常运行流程:
看门狗触发的工作流程:
后记
实际测试效果还不错,可以满足应用需求。
参考自:添加链接描述
仅记录使用。