STM32 基础系列教程 19 – WWDG
前言
學(xué)習(xí)stm32 窗口看門狗(WWDG)接口使用,學(xué)會(huì)用STM32內(nèi)部窗口看門狗(WWDG)接口實(shí)現(xiàn)程序異常時(shí)自復(fù)位功能。WWDG最適合那些要求看門狗在精確計(jì)時(shí)窗口起作用的應(yīng)用程序。窗口看門狗由從APB1時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng)(PCLK1除以4096 = 36M/4096 = 8.789K),通過(guò)可配置的時(shí)間窗口來(lái)檢測(cè)應(yīng)用程序非正常的過(guò)遲或過(guò)早的操作。
?
窗口看門狗通常被用來(lái)監(jiān)測(cè),由外部干擾或不可預(yù)見(jiàn)的邏輯條件造成的應(yīng)用程序背離正常的運(yùn)行序列而產(chǎn)生的軟件故障。除非遞減計(jì)數(shù)器的值在T6位變成0前被刷新,看門狗電路在達(dá)到預(yù)置的時(shí)間周期時(shí),會(huì)產(chǎn)生一個(gè)MCU復(fù)位。在遞減計(jì)數(shù)器達(dá)到窗口寄存器數(shù)值之前,如果7位的遞減計(jì)數(shù)器數(shù)值(在控制寄存器中)被刷新, 那么也將產(chǎn)生一個(gè)MCU復(fù)位。這表明遞減計(jì)數(shù)器需要在一個(gè)有限的時(shí)間窗口中被刷新。
WWDG主要特性
● 可編程的自由運(yùn)行遞減計(jì)數(shù)器
● 條件復(fù)位
─ 當(dāng)遞減計(jì)數(shù)器的值小于0x40, (若看門狗被啟動(dòng))則產(chǎn)生復(fù)位。
─ 當(dāng)遞減計(jì)數(shù)器在窗口外被重新裝載, (若看門狗被啟動(dòng))則產(chǎn)生復(fù)位。見(jiàn)0。
● 如果啟動(dòng)了看門狗并且允許中斷,當(dāng)遞減計(jì)數(shù)器等于0x40時(shí)產(chǎn)生早期喚醒中斷(EWI),它可以被用于重裝載計(jì)數(shù)器以避免WWDG復(fù)位。
有關(guān)更多的WWDG的信息可參考STM32具體芯片的數(shù)據(jù)手冊(cè)!
?
示例詳解
基于硬件平臺(tái): STM32F10C8T6最小系統(tǒng)板, MCU 的型號(hào)是?STM32F103c8t6, 使用stm32cubemx 工具自動(dòng)產(chǎn)生的配置工程,使用KEIL5編譯代碼。
?
?
本示例所用的最小系統(tǒng)板原理圖:
?
?
?
圖中所示配置方式是窗口看門狗的特殊應(yīng)用,相當(dāng)于IWDG,其刷新操作也可以任意進(jìn)行,當(dāng),但有點(diǎn)不是原來(lái)WWDG的味道了,所以我們改用下的面的配置方式來(lái)操作:
?
和帶喂狗操作
?
?
加上喂狗操作后,程序能按原先預(yù)設(shè)的邏輯長(zhǎng)時(shí)間運(yùn)行,PA0腳看有脈沖輸出,PA1上的波形變得更加有序和統(tǒng)一:
對(duì)于窗口看門狗,如果我們?cè)诜谴翱跁r(shí)間內(nèi)喂狗操,對(duì)應(yīng)的代碼如下:
對(duì)應(yīng)的波形如下(程序運(yùn)行起來(lái)不斷復(fù)位):
?
OK,本期實(shí)驗(yàn)完成!下期見(jiàn)!同時(shí)如果大家有什么疑問(wèn)或是有想了解的其它內(nèi)容,也歡迎大家留言!!最后喜歡這個(gè)公眾號(hào)的同學(xué)們記得加關(guān)注了,每天都會(huì)有技術(shù)干貨推出!!
?
文中資料下載,在公眾號(hào)里給十三發(fā)消息:
下載|STM32基礎(chǔ)系列教程19
?
關(guān)注十三公眾號(hào)
?
總結(jié)
以上是生活随笔為你收集整理的STM32 基础系列教程 19 – WWDG的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: STM32 基础系列教程 18 – IW
- 下一篇: STM32 基础系列教程 20 - RT