前言
今天總結“STM32F103 WDG看門狗”,STM32F1有兩個看門狗,IWDG獨立看門狗和WWDG窗口看門狗,今天將兩個看門狗一并總結了。
總結一下二者的區別:
1)、IWDG使用內部低速時鐘LSI,WWDG使用系統時鐘APB1ENR
2)、IWDG沒有中斷,WWDG有中斷
3)、IWDG是12位遞減的。WWDG是7位遞減的
4)、IWDG只有下限,WWDG有下限和上限
5)、IWDG最適合應用于那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合。 WWDG最適合那些要求看門狗在精確計時窗口起作用的應用程序。
看門狗在長期工作的產品中用到比較多,作用很簡單,防止死機??撮T狗的功能也可用于定時計數等。
每天總結的不僅僅是基礎,而是重點,不起眼的重點,容易被人忽視的重點。關注微信公眾號“EmbeddDeveloper”還有更多精彩等著你。
提供下載的“軟件工程”都是在硬件板子上進行多次測試、并保證沒問題才上傳至360云盤。
今天的軟件工程下載地址(360云盤):
IWDG:https://yunpan.cn/cSQd68LfbPkIH訪問密碼 d751
WWDG:https://yunpan.cn/cSQdk5CLVWVwW訪問密碼 fe96
STM32F10x的資料可以在我360云盤下載:
https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90
內容講解
工程概要說明: IWDG工程基于“EXIT中斷”工程修改而來,因為使用到按鍵來喂狗。系統復位,快速閃爍兩次LED,接下來間隔1秒串口打印一個計數值(從0 - 8),在8秒的時間內按鍵喂狗,計數值會歸零;如果不喂狗則會復位。
WWDG工程基于“TIM定時”而來,因為使用了定時的功能。我提供的工程喂狗的時間是57ms(剛好最大值),間隔57ms喂狗一次,不會復位(LED快速變化, 快速打印WWDG...); 如果大于57ms(自己可以修改一下)未喂狗則會復位(LED慢速變化, 不斷打印Reset...)。
提供的工程簡單明了,詳細中文注釋,方便自己方便大家。
關于“STM32F103 WDG看門狗”我把重要的幾點在下面分別講述:
一、IWDG的配置
該函數位于IWDG工程的main.c文件下面;
提供的框圖為見資料。
我想大部分關心的是這個8秒的喂狗時間是怎樣計算出來的,其實,看了程序的注釋和框圖大概就應該能明白了。40K分頻256之后就只能在1秒計數156次,
而要計滿1250(40000/32)就需要8秒。不明白的朋友請自己分析一下哦。
二、WWDG的配置
該函數位于WWDG工程的main.c文件下面;
提供的框圖為見資料。
這里也主要講一下最大喂狗時間57ms.分頻之后只能在1秒計數1099次,要計滿63個大概就需要57ms,這個值就是最大值。
這個工程需要自己修改這個時間來測試,建議都自己親手修改代碼測試一下。
三、WWDG主函數
該函數位于WWDG工程的main.c文件下面;
通過串口打印的信息就可以清楚的知道系統復位了沒有。
親手修改來大于57ms的時間試試就知道。
四、今天的重點
A.WWDG計數器的范圍為:0x40 --- 0x7F
B.當微控制器進入調試模式時(Cortex-M3核心停止),根據調試模塊中的DBG_WWDG_STOP 配置位的狀態, WWDG的計數器能夠繼續工作或停止。
說明
今天提供的軟件工程基于STM32F103大容量芯片,其實只要適當修改工程的部分配置,STM32F1的芯片都適用。
-
看門狗
+關注
關注
10文章
565瀏覽量
70838 -
STM32F10
+關注
關注
0文章
45瀏覽量
15637 -
WWDG
+關注
關注
0文章
19瀏覽量
5515
發布評論請先 登錄
相關推薦
評論