stm32之看門狗

爲什麼要看門狗?
在由單片機構成的微型計算機系統中,由於單片機的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環,程序的正常運行被打斷,有單片機控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所欲處於對單片機運行狀態進行實時監測的考慮,便產生了一種專門用於檢測單片機程序運行狀態的模塊或者芯片,俗稱"看門狗"

看門狗解決的問題是
在啓動正常運行的時候,系統不能復位
在系統跑飛(程序執行異常)的情況,系統復位,程序重新執行

STM32內置兩個看門狗,提供了更高的餓安全性,事件的精確性和使用的靈活型。兩個看門狗設備(獨立看門狗/窗口看門狗)可以用來檢測和解決有軟件錯誤引起的故障。當計數器大袋給定的超時值時。觸發一箇中斷(僅使用窗口看門狗)或者產生系統復位
獨立看門狗使用與需要看門狗作爲一個在主程序之外額能夠完全獨立工作,並且對時間精度要求低的場合
窗口看門狗由從APB1時鐘分頻後得到時鐘驅動,通過可配置的事件窗口來檢測應用程序非正常的過遲或過早的操作
窗口看門狗最適合那些要求在看門狗在精確計時窗口起作用的程序

獨立看門狗

看門狗功能
在鍵值寄存器(IWDG_KR)中寫入0xCCCC,開始啓用看門狗。此時計數器開始從其復位值0XFFF遞減,當計數器計數到尾值0x000時會產生一個復位信號(IWDG_RESET)
無論何時,只要在鍵值寄存器(IWDG_KR)寫入0XAAAA(餵狗),自動重裝載寄存器,(IWOG_RLR)的值就會重新加載到計數器,避免看門狗復位
如果程序異常,就無法正常餵狗,從而系統復位
在這裏插入圖片描述
鍵值寄存器(IWDG_KR):0-15位有效
預分頻寄存器(IWDG_PR):0-2位有效
重裝載寄存器(IWDG_RLR):0-11位有效
狀態寄存器(IWDG_SR):0-1位有效

超時時間計算
在這裏插入圖片描述
看門狗庫函數
在這裏插入圖片描述
在這裏插入圖片描述

窗口看門狗

之所以稱爲窗口就是因爲其餵狗事件是有一個上下限的範圍內(窗口),你可以通過設定相關寄存器,設定其上限事件(下限固定),餵狗事件不能過早也不能過晚
而獨立看門狗限制餵狗事件在0-x內,x由相關寄存器決定餵狗的事件不能過晚。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章