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