《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > STM32的窗口看門狗

STM32的窗口看門狗

2017-01-18
關(guān)鍵詞: STM32 看門狗

stm32有兩個(gè)看門狗,獨(dú)立看門狗和窗口看門狗,其實(shí)兩者的功能是類似的,只是喂狗的限制時(shí)間不同。

獨(dú)立看門狗是限制喂狗時(shí)間在0-x內(nèi),x由你的相關(guān)寄存器決定。喂狗的時(shí)間不能過(guò)晚。

窗口看門狗,所以稱之為窗口就是因?yàn)槠湮构窌r(shí)間是一個(gè)有上下限的范圍內(nèi),你可以通過(guò)設(shè)定相關(guān)寄存器,設(shè)定其上限時(shí)間和下限時(shí)間。喂狗的時(shí)間不能過(guò)早也不能過(guò)晚。

窗口看門狗的上窗口就是配置寄存器WWDG->CFR里設(shè)定的W[6:0];

下窗口是固定的0x40;

當(dāng)窗口看門狗的計(jì)數(shù)器在上窗口值之外,或是低于下窗口值都會(huì)產(chǎn)生復(fù)位。

上窗口的值可以只有設(shè)定,7位二進(jìn)制數(shù)最大只可以設(shè)定為127(0x7F),最小又必須大于下窗口的0x40,所以其取值范圍為64~127(即:0x40~0x7F);

配置寄存器WWDG->CFR中為計(jì)數(shù)器設(shè)定時(shí)鐘分頻系數(shù),確定這個(gè)計(jì)數(shù)器可以定時(shí)的時(shí)間范圍,從而確定窗口的時(shí)間范圍。

窗口看門狗的時(shí)鐘來(lái)自于PCLK1,在時(shí)鐘配置中,其頻率為外部時(shí)鐘經(jīng)倍頻器后的二分頻時(shí)鐘,即為36MHz,根據(jù)手冊(cè)可以知道其定時(shí)時(shí)間計(jì)算方法:

36Mhz下相關(guān)窗口看門狗的喂狗時(shí)間范圍:

WDGTB(計(jì)數(shù)器分頻值)最早喂狗時(shí)間/us最晚喂狗時(shí)間/ms

0 113 7.28

1 227 14.56

2 455 29.12

3 910 58.25

本例直接寄存器實(shí)現(xiàn)4種測(cè)試模式,測(cè)試窗口看門狗的復(fù)位原理。

MODE_1 0 // 在30ms時(shí)喂狗,在窗口范圍內(nèi)喂狗,LED燈閃爍

MODE_2 0 // 在10ms時(shí)喂狗,在窗口范圍外導(dǎo)致復(fù)位,LED燈常亮

MODE_3 0 // 在100ms時(shí)喂狗,在窗口范圍外喂狗導(dǎo)致復(fù)位

MODE_4 1 // 主函數(shù)不執(zhí)行喂狗,開(kāi)啟提前喚醒中斷,在WWDG中斷函數(shù)中喂狗

庫(kù)函數(shù)實(shí)現(xiàn)在提前喚醒中斷中,喂狗操作,PA4口LED正常閃爍。當(dāng)外部中斷發(fā)生(按下PA0按鍵),長(zhǎng)時(shí)間不喂狗,引發(fā)窗口看門狗復(fù)位。

直接操作寄存器

相關(guān)寄存器如下:

控制寄存器WWDG->CR:低8位有效。

第8位為WDGA,看門狗激活位。低7位[6:0]為看門狗計(jì)數(shù)器的計(jì)數(shù)值。

配置寄存器WWDG->CFR:低十位有效。

第10位為EWI:提醒喚起中斷。此位置1,當(dāng)計(jì)數(shù)器值到達(dá)0x40時(shí),將產(chǎn)生中斷。

第8,9位WDGTB:為計(jì)數(shù)器分頻系數(shù)設(shè)置為:

00: CK計(jì)時(shí)器時(shí)鐘(PCLK1除以4096)除以1 01: CK計(jì)時(shí)器時(shí)鐘(PCLK1除以4096)除以2

10: CK計(jì)時(shí)器時(shí)鐘(PCLK1除以4096)除以4 11: CK計(jì)時(shí)器時(shí)鐘(PCLK1除以4096)除以8

低7位[6:0]:為窗口值。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。