做到了實驗6—看門狗實驗,看門狗就是一個用來檢測單片機是否正常運行,有自己獨立的晶振,不會受到單片機晶振的影響,其原理是軟件以一定的時間寫入0XAAAA,如果超過規定時間,那么就會產生復位,寫入OX5555啟動看門狗,與看門狗有關的兩個寄存器是IWDG->PR和IWDG->RLR,兩個寄存器都有寫保護功能,要修改兩個寄存器的值,先向IWDG->KR寄存器寫入0X5555,預分頻寄存器(IWDG_PR),該寄存器用來設置看門狗時鐘的分頻系數,最低為4,最高位 256,該寄存器是一個 32 位的寄存器,但是我們只用了最低 3位,其他都是保留位。還有一個重裝載值寄存器,每次向IWDG->KR寫入0xAAAA后從新裝載預設值,并開始遞減。 寫入步驟
1:向IWDR->KR寫入0X5555,設置IWDG->PR和IWDG->RLR的值可以得到看門狗的時間計算方法為:Tout=((4×2^prer) ×rlr) /40(Tout為溢出時間,prer為預分頻時間是pr的值范圍為0~7,rlr為重裝載值,比如我們設定 prer 值為4, rlr 值為 625,那么就可以得到 Tout=64×625/40=1000ms)
2:向IWDDG->KR寫入0XAAAA,將使 STM32 重新加載 IWDG_RLR的值到看門狗計數器里面。 即實現獨立看門狗的喂狗操作。
3:向IWDG->KR寫入OXCCCC啟動看門狗。
|