本文將介紹STM32的看門(mén)狗中的獨(dú)立看門(mén)狗,并通過(guò)實(shí)例來(lái)喂狗、體驗(yàn)喂狗與不喂狗的區(qū)別。
①STM32看門(mén)狗介紹之獨(dú)立看門(mén)狗
②使用STM32CUBEMX來(lái)配置工程文件
③代碼實(shí)現(xiàn),按鍵按下喂狗、按鍵不按下不喂狗程序復(fù)位
①STM32看門(mén)狗介紹之獨(dú)立看門(mén)狗
看門(mén)狗定時(shí)器本質(zhì)上是一個(gè)計(jì)數(shù)器、給計(jì)數(shù)器一個(gè)數(shù)值,在程序
運(yùn)行后計(jì)數(shù)器的值開(kāi)始遞減,當(dāng)計(jì)數(shù)器的值減到0是會(huì)將程序復(fù)位,若在減到0之前給計(jì)數(shù)器更新一下值“喂狗”則從最新的值開(kāi)始遞減;
用途:
1、這樣做的好處就是程序跑飛、死機(jī)時(shí),通過(guò)復(fù)位的方式使得程序又正常運(yùn)行;
2、用于將系統(tǒng)從休眠或者空閑模式喚醒。
看門(mén)狗的種類(lèi):
獨(dú)立看門(mén)狗IWDG
特點(diǎn):專(zhuān)用時(shí)鐘LSI、低功耗模式仍可運(yùn)行、對(duì)定時(shí)的控制比較松;
窗口看門(mén)狗
特點(diǎn):總線時(shí)鐘APB1、要求主應(yīng)用程序在規(guī)定時(shí)間喂狗、對(duì)定時(shí)控制比較嚴(yán)
獨(dú)立看門(mén)狗工作原理框圖:
獨(dú)立看門(mén)狗的時(shí)鐘是內(nèi)部低速時(shí)鐘、是一個(gè)RC時(shí)鐘,即使主時(shí)鐘失效也不影響?yīng)毩⒖撮T(mén)狗的運(yùn)行,該時(shí)鐘是32KHz、但由于是RC時(shí)鐘其頻率范圍在15-47khz波動(dòng),所以有時(shí)定時(shí)是有一點(diǎn)誤差的。
預(yù)分配寄存器:寄存器中的數(shù)值對(duì)應(yīng)相應(yīng)的分頻數(shù)、最大支持
256分頻;
狀態(tài)寄存器:寄存器中的數(shù)值對(duì)應(yīng)預(yù)分頻器寄存器和重載寄存器
中的值的更新?tīng)顩r,若在更新中、則暫時(shí)不能更改這兩個(gè)寄存器中的值
重載寄存器:寄存器中裝著計(jì)數(shù)器的重裝載值
關(guān)鍵字寄存器:負(fù)責(zé)重裝載值的裝載、預(yù)分頻器和重載寄存器是否可寫(xiě),控制IWDG的啟動(dòng);
需要注意的是計(jì)數(shù)器是12位、即喂狗最大間隔時(shí)間是有限制的;
②使用STM32CUBEMX來(lái)配置工程文件
Step1:使能USART3,用于調(diào)試
Step2:使能獨(dú)立看門(mén)狗、并進(jìn)行配置32分頻、3秒內(nèi)喂狗否則
復(fù)位
Step3:PA0設(shè)置為輸入功能、PA0接的是按鍵
Step4:生成工程文件
③代碼實(shí)現(xiàn),按鍵按下喂狗、按鍵不按下不喂狗程序復(fù)位
Step1:輸出重定向,用于調(diào)試
Step2:按鍵按下喂狗
Step3:效果
-
看門(mén)狗
+關(guān)注
關(guān)注
10文章
559瀏覽量
70745 -
STM32
+關(guān)注
關(guān)注
2266文章
10871瀏覽量
354796 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2253瀏覽量
94352 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
280瀏覽量
14752 -
獨(dú)立看門(mén)狗
+關(guān)注
關(guān)注
0文章
24瀏覽量
3805
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論