STM32F10xxx內(nèi)置兩個(gè)看門(mén)狗分別為獨(dú)立看門(mén)狗(IWDG)和窗口看門(mén)狗(WWDG)。 IWDG最適合應(yīng)用于那些需要看門(mén)狗作為一個(gè)在主程序之外,能夠完全獨(dú)立工作,并且對(duì)時(shí)間精度要求較低的場(chǎng)合。 WWDG最適合那些要求看門(mén)狗在精確計(jì)時(shí)窗口起作用的應(yīng)用程序。 獨(dú)立看門(mén)狗(IWDG)其實(shí)就是我們單片機(jī)經(jīng)常見(jiàn)的那種. 在鍵寄存器(IWDG_KR)中寫(xiě)入0xCCCC,開(kāi)始啟用獨(dú)立看門(mén)狗;此時(shí)計(jì)數(shù)器開(kāi)始從其復(fù)位值0xFFF遞減計(jì)數(shù)。當(dāng)計(jì)數(shù)器計(jì)數(shù)到末尾0x000時(shí),會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)(IWDG_RESET)。 無(wú)論何時(shí),只要鍵寄存器IWDG_KR中被寫(xiě)入0xAAAA, IWDG_RLR中的值就會(huì)被重新加載到計(jì)數(shù)器中從而避免產(chǎn)生看門(mén)狗復(fù)位 。 從上面的說(shuō)明文字可以看出它超時(shí)的時(shí)間是固定的,就是0xFFF遞減計(jì)數(shù)到0x000時(shí)就會(huì)復(fù)位,在次過(guò)程中寫(xiě)入0xAAAA就可以避免產(chǎn)生看門(mén)狗復(fù)位. 窗口看門(mén)狗(WWDG)由從APB1時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng),通過(guò)可配置的時(shí)間窗口來(lái)檢測(cè)應(yīng)用程序非正常的過(guò)遲或過(guò)早的操作。上面說(shuō)的重點(diǎn)字就在于"過(guò)遲或過(guò)早",講到這里或許你會(huì)看到與上面的區(qū)別了.沒(méi)關(guān)系看不出我繼續(xù)解釋. 窗 口看門(mén)狗(WWDG)復(fù)位條件有;1.當(dāng)遞減計(jì)數(shù)器的值小于0x40,(若看門(mén)狗被啟動(dòng))則產(chǎn)生復(fù)位。2.當(dāng)遞減計(jì)數(shù)器在窗口外被重新裝載,(若看門(mén)狗被 啟動(dòng))則產(chǎn)生復(fù)位。那我來(lái)解釋第一個(gè)條件,窗口看門(mén)狗(WWDG)有個(gè)控制寄存器(WWDG_CR)里面可以設(shè)置計(jì)數(shù)器值在0xFF和0xC0之間.當(dāng)計(jì) 數(shù)器值遞減計(jì)數(shù)到小于0x40則產(chǎn)生復(fù)位.第二條件說(shuō)明:窗口看門(mén)狗(WWDG)有個(gè)配置寄存器(WWDG_CFR)里面也可以設(shè)置一個(gè)與遞減計(jì)數(shù)器進(jìn)行 比較用的窗口值,這值的作用是:如果軟件在計(jì)數(shù)器值大于窗口寄存器中的數(shù)值時(shí)重新裝載計(jì)數(shù)器,將產(chǎn)生一個(gè)復(fù)位。 綜合以上兩點(diǎn)就成了窗口看門(mén)狗的"過(guò)遲或過(guò)早"的特點(diǎn). |
|
來(lái)自: rookie > 《技術(shù)帖》