STM32F0xx_看門狗(獨(dú)立+窗口)配置詳細(xì)過程
Ⅰ、概述
對(duì)于看門狗,我覺得做單片機(jī)或者嵌入式開發(fā)的人員來說并不陌生,今天總結(jié)STM32F0看門狗的功能,F(xiàn)0的看門狗有兩種:獨(dú)立和窗口看門狗。
今天提供兩種看門狗的軟件工程實(shí)例,供大家下載。
兩種看門狗各有各的特點(diǎn),應(yīng)用在不同的場(chǎng)合,下面將分別簡(jiǎn)單總結(jié)一下獨(dú)立和窗口看門狗的功能。
Ⅱ、下載
文章提供的“軟件工程”都是在硬件板子上進(jìn)行多次測(cè)試、并保證沒問題才上傳至360云盤,請(qǐng)放心下載測(cè)試,如有問題請(qǐng)檢查一下你的板子是否有問題。
ST標(biāo)準(zhǔn)外設(shè)庫(kù)和參考手冊(cè)、數(shù)據(jù)手冊(cè)等都可以在ST官網(wǎng)下載,你也可以到我的360云盤下載。關(guān)于F0系列芯片的參考手冊(cè)有多個(gè)版本(針對(duì)F0不同芯片),但有一個(gè)通用版本,就是“STM32F0x128參考手冊(cè)V8(英文)2015-07”建議參考該手冊(cè),以后如果你換用一種型號(hào)芯片也方便了解。
今天的軟件工程下載地址(360云盤):
IWDG獨(dú)立看門狗:
https://yunpan.cn/cRfa8Qhi9g48Y訪問密碼 2c3e
WWDG窗口看門狗:
https://yunpan.cn/cRfa5DvT9syUm訪問密碼 7bf1
STM32F0xx的資料可以在我360云盤下載:
https://yunpan.cn/cS2PVuHn6X2Bj訪問密碼 8c37
Ⅲ、準(zhǔn)備工作
對(duì)于看門狗的編程,建議大家準(zhǔn)備F0的參考手冊(cè)和數(shù)據(jù)手冊(cè),方便查閱相關(guān)知識(shí),沒有的請(qǐng)到ST官網(wǎng)或到我360云盤下載。
今天總結(jié)的軟件工程是基于“TIM基本延時(shí)配置詳細(xì)過程”修改而來,因此需要將該軟件工程下載準(zhǔn)備好。我每次都是提供整理好的軟件工程供大家下載,但是,如果你是一位學(xué)習(xí)者,建議自己親手一步一步操作。
Ⅳ、看門狗原理
①IWDG獨(dú)立看門狗
獨(dú)立看門狗由內(nèi)部低速時(shí)鐘LSI提供計(jì)數(shù)時(shí)鐘,8位分頻,12位計(jì)數(shù),需要定期喂狗(重載數(shù)值ReloadCounter),如果計(jì)數(shù)值減為0了,還沒有重載數(shù)值,則會(huì)響應(yīng)復(fù)位事件。
②WWDG窗口看門狗
窗口看門狗由APB1(RCC_APB1Periph_WWDG)提供計(jì)數(shù)時(shí)鐘,2位分頻,7位計(jì)數(shù),需要定期喂狗(更新計(jì)數(shù)值),如果計(jì)數(shù)值減為0x40了,還未更新計(jì)數(shù)值,則會(huì)響應(yīng)復(fù)位事件。
Ⅴ、代碼描述
今天提供兩種看門狗軟件工程,下面分別來總結(jié)一下,主要講解配置的函數(shù)接口。
①IWDG獨(dú)立看門狗
該函數(shù)位于main.c文件上面;
重載數(shù)值的計(jì)算請(qǐng)結(jié)合上面的結(jié)構(gòu)框圖配合函數(shù)源代碼,從函數(shù)中可以看的出來,只要0.5s。
運(yùn)行效果:
喂狗最大時(shí)間500ms(理論值),但內(nèi)部低速時(shí)鐘LSI存在誤差,建議修改測(cè)試時(shí)間:小于450,大于550;
小于450ms: 正常喂狗,串口間隔打印"Running..."LED變化;
大于550ms: 喂狗超時(shí),系統(tǒng)復(fù)位,串口打印"System Reset..."
②WWDG窗口看門狗
該函數(shù)位于main.c文件上面;
這里的時(shí)鐘和上面IWDG的時(shí)鐘不同,結(jié)合框圖也看得出了經(jīng)過分頻之后計(jì)數(shù)的值也是計(jì)算的出來的。
運(yùn)行效果:
喂狗最大時(shí)間43ms(理論值),但串口打印需要一兩毫秒,建議修改測(cè)試時(shí)間:小于41,大于43;
小于41ms: 正常喂狗,串口間隔打印"Running..."LED變化;
大于43ms: 喂狗超時(shí),系統(tǒng)復(fù)位,串口打印"System Reset..."
③總結(jié)一下二者的區(qū)別
1)、IWDG使用內(nèi)部低速時(shí)鐘LSI,WWDG使用系統(tǒng)時(shí)鐘APB1ENR
2)、IWDG沒有中斷,WWDG有中斷
3)、IWDG是12位遞減的。WWDG是7位遞減的
4)、IWDG只有下限,WWDG有下限和上限
5)、IWDG最適合應(yīng)用于那些需要看門狗作為一個(gè)在主程序之外,能夠完全獨(dú)立工作,并且對(duì)時(shí)間精度要求較低的場(chǎng)合。 WWDG最適合那些要求看門狗在精確計(jì)時(shí)窗口起作用的應(yīng)用程序。
看門狗在長(zhǎng)期工作的產(chǎn)品中用到比較多,作用很簡(jiǎn)單,防止死機(jī)??撮T狗的功能也可用于定時(shí)計(jì)數(shù)等。
Ⅵ、說明
或許你硬件芯片不是提供工程里面的芯片,但是STM32F0的芯片軟件兼容性很好,可以適用于F0其他很多型號(hào)的芯片,甚至是F2、F4等芯片上(具體請(qǐng)看手冊(cè)、或者親自測(cè)試)。
本文章提供的軟件工程是基于ST標(biāo)準(zhǔn)外設(shè)庫(kù)為基礎(chǔ)建立而成,而非使用STM32CubeMX建立工程。個(gè)人覺得使用ST的標(biāo)準(zhǔn)外設(shè)庫(kù)適合與學(xué)習(xí)者,STM32CubeMX建立工程結(jié)構(gòu)復(fù)雜,對(duì)于學(xué)習(xí)者,特別是初學(xué)者估計(jì)會(huì)頭疼。
今天的工程是基于工程“STM32F0xx_TIM基本延時(shí)配置詳細(xì)過程”修改而來,以上實(shí)例總結(jié)僅供參考,若有不對(duì)之處,敬請(qǐng)諒解。