proteus里面没有stm32怎么办_学习STM32日志——独立看门狗实验(20.06.23)
繼續(xù)更新學(xué)習(xí)STM32的歷程,今天學(xué)習(xí)看門狗。
在單片機(jī)構(gòu)成的微型計算機(jī)系統(tǒng)中,單片機(jī)的工作時常收到外界電磁場的干擾,導(dǎo)致程序跑飛,陷入死循環(huán)。為了解決這個問題,產(chǎn)生了一種用于監(jiān)測單片機(jī)程序運行狀態(tài)的模塊或芯片,叫做看門狗(WatchDog),而這個東西已經(jīng)集成在STM32芯片內(nèi)部。它能在系統(tǒng)跑飛的情況下將系統(tǒng)復(fù)位,重新執(zhí)行程序。
STM32有兩個看門狗,一個是窗口看門狗,由APB1時鐘分頻后得到的時鐘驅(qū)動;另一個是獨立看門狗,由專用的低速時鐘(LSI)驅(qū)動,它是由內(nèi)部的RC振蕩器產(chǎn)生的,約為40KHZ,即使主時鐘發(fā)生故障它仍然有效。
看門狗的原理是:當(dāng)我們使能看門狗時(往鍵值寄存器IWDG_KR寫入0xCCCC實現(xiàn)),12位的計數(shù)器就會從0xFFF開始遞減,直到減為0,系統(tǒng)復(fù)位。在這個過程中,我們要不斷地喂狗,才能使系統(tǒng)不復(fù)位。喂狗是將重裝載寄存器的值賦給計數(shù)器,然后計數(shù)器從這個值開始遞減。
由于預(yù)分頻寄存器IWDG_PR和重裝載寄存器IWDG_RLR有寫保護(hù)功能,即如果不取消這個功能,不能往里面寫數(shù)據(jù)。1)所以首先要往下面第一個庫函數(shù)里面寫0x5555,取消寫保護(hù)。2)然后設(shè)置預(yù)分頻系數(shù)和重裝載值。3)使能看門狗。4)程序喂狗。
本次程序?qū)崿F(xiàn)一個功能:LED燈在初始化后是滅的狀態(tài),經(jīng)過200mS的延時后點亮,即如果系統(tǒng)不斷復(fù)位,則燈會一直閃爍。而當(dāng)按下按鍵時,會實現(xiàn)喂狗功能,也就是將重裝載值賦給計數(shù)器去遞減。而計數(shù)器遞減至0的時間設(shè)置為2S,也就是說如果2S內(nèi)沒有去按下按鍵(喂狗),則系統(tǒng)復(fù)位。如果2S內(nèi)一直按按鍵,則LED常亮。
知乎視頻?www.zhihu.com總結(jié)
以上是生活随笔為你收集整理的proteus里面没有stm32怎么办_学习STM32日志——独立看门狗实验(20.06.23)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html请求接口_前端工程师吐后端工程师
- 下一篇: cisco 2960 VLAN MAC_