學校網(wǎng)站策劃書網(wǎng)站之家
STM32低功耗模式結合看門狗
前言
最近做到一個需求要使用STM32的低功耗模式進行長時間待機應用,每隔十分鐘發(fā)送一次數(shù)據(jù)到服務器上,當不發(fā)送的時候就處于低功耗模式。在經(jīng)過一段時間的測試以后發(fā)現(xiàn)板子過三四天左右就沒有數(shù)據(jù)上傳服務器了,因為測試的時間很長,問題排查起來非常麻煩,所以干脆增加看門狗看能不能解決問題。
存在問題
看門狗使用了內部的LSI時鐘,在40KHZ的頻率下最長的喂狗等待時間也只有26S多,對于需要低功耗使用的場景下,這種頻繁的喚醒喂狗操作是比較致命的(費電),因此就想在低功耗的時候關閉看門狗,喚醒正常工作以后再打開看門狗工作,查閱資料以后發(fā)送看門狗居然沒法在低功耗模式下關閉。。。
解決方法
參考網(wǎng)上大佬的方法最后實現(xiàn)了該功能,簡單描述就是在開機時通過Flash中的標志進行判斷本次重啟是由于看門狗導致的還是系統(tǒng)正常導致的(人為使用軟復位重啟)。
正常運行流程:
看門狗觸發(fā)的工作流程:
后記
實際測試效果還不錯,可以滿足應用需求。
參考自:添加鏈接描述
僅記錄使用。