STM32F0xx_看門狗(獨立+窗口)配置詳細過程


、概述

對於看門狗,我覺得做單片機或者嵌入式開發的人員來說並不陌生,今天總結STM32F0看門狗的功能,F0的看門狗有兩種:獨立和窗口看門狗。

今天提供兩種看門狗的軟件工程實例,供大家下載。

兩種看門狗各有各的特點,應用在不同的場合,下面將分別簡單總結一下獨立和窗口看門狗的功能。

 

本着免費分享的原則,方便大家手機學習知識,每天在微信分享技術知識。如果你覺得分享的內容對你有用,又想了解更多相關的文章,請用微信搜索“EmbeddDeveloper” 或者掃描下面二維碼、關注,將有更多精彩內容等着你。

 

Ⅱ、下載

文章提供的“軟件工程”都是在硬件板子上進行多次測試、並保證沒問題才上傳至360雲盤,請放心下載測試,如有問題請檢查一下你的板子是否有問題。

ST標准外設庫和參考手冊、數據手冊等都可以在ST官網下載,你也可以到我的360雲盤下載。關於F0系列芯片的參考手冊有多個版本(針對F0不同芯片),但有一個通用版本,就是“STM32F0x128參考手冊V8(英文)2015-07”建議參考該手冊,以后如果你換用一種型號芯片也方便了解。

 

今天的軟件工程下載地址(360雲盤):

IWDG獨立看門狗:

https://yunpan.cn/cRfa8Qhi9g48Y  訪問密碼 2c3e

 

WWDG窗口看門狗:

https://yunpan.cn/cRfa5DvT9syUm  訪問密碼 7bf1

 

STM32F0xx的資料可以在我360雲盤下載:

https://yunpan.cn/cS2PVuHn6X2Bj  訪問密碼 8c37

 

Ⅲ、准備工作

對於看門狗的編程,建議大家准備F0的參考手冊和數據手冊,方便查閱相關知識,沒有的請到ST官網或到我360雲盤下載。

今天總結的軟件工程是基於“TIM基本延時配置詳細過程”修改而來,因此需要將該軟件工程下載准備好。我每次都是提供整理好的軟件工程供大家下載,但是,如果你是一位學習者,建議自己親手一步一步操作。

 

Ⅳ、看門狗原理

①IWDG獨立看門狗

獨立看門狗由內部低速時鍾LSI提供計數時鍾,8 位分頻,12位計數,需要定期喂狗(重載數值 ReloadCounter),如果計數值減為0了,還沒有重載數值,則會響應復位事件。

 

 

②WWDG窗口看門狗

窗口看門狗由APB1(RCC_APB1Periph_WWDG)提供計數時鍾,2 位分頻,7位計數,需要定期喂狗(更新計數值),如果計數值減為0x40了,還未更新計數值,則會響應復位事件。

 

 

Ⅴ、代碼描述

今天提供兩種看門狗軟件工程,下面分別來總結一下,主要講解配置的函數接口。

 

①IWDG獨立看門狗

該函數位於main.c文件上面;

重載數值的計算請結合上面的結構框圖配合函數源代碼,從函數中可以看的出來,只要0.5s。

 

運行效果:

喂狗最大時間500ms(理論值),但內部低速時鍾LSI存在誤差,建議修改測試時間:小於450,大於550;

小於450ms: 正常喂狗,串口間隔打印"Running..."LED變化;

大於550ms: 喂狗超時,系統復位,串口打印"System Reset..."

 

 

②WWDG窗口看門狗

該函數位於main.c文件上面;

這里的時鍾和上面IWDG的時鍾不同,結合框圖也看得出了經過分頻之后計數的值也是計算的出來的。

 

運行效果:

喂狗最大時間43ms(理論值),但串口打印需要一兩毫秒,建議修改測試時間:小於41,大於43;

小於41ms: 正常喂狗,串口間隔打印"Running..."LED變化;

大於43ms: 喂狗超時,系統復位,串口打印"System Reset..."

 

③總結一下二者的區別

1)、IWDG使用內部低速時鍾LSI,WWDG使用系統時鍾APB1ENR

2)、IWDG沒有中斷,WWDG有中斷

3)、IWDG是12位遞減的。WWDG是7位遞減的

4)、IWDG只有下限,WWDG有下限和上限

5)、IWDG最適合應用於那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,並且對時間精度要求較低的場合。 WWDG最適合那些要求看門狗在精確計時窗口起作用的應用程序。

看門狗在長期工作的產品中用到比較多,作用很簡單,防止死機。看門狗的功能也可用於定時計數等。

 

Ⅵ、說明

或許你硬件芯片不是提供工程里面的芯片,但是STM32F0的芯片軟件兼容性很好,可以適用於F0其他很多型號的芯片,甚至是F2、F4等芯片上(具體請看手冊、或者親自測試)。

本文章提供的軟件工程是基於ST標准外設庫為基礎建立而成,而非使用STM32CubeMX建立工程。個人覺得使用ST的標准外設庫適合與學習者,STM32CubeMX建立工程結構復雜,對於學習者,特別是初學者估計會頭疼。

今天的工程是基於工程“STM32F0xx_TIM基本延時配置詳細過程”修改而來,以上實例總結僅供參考,若有不對之處,敬請諒解。

 

 

Ⅶ、最后

關注微信,回復“更多內容”,將獲得更多內容(如:UCOS實例等,不斷更新中......)。

如果你喜歡我分享的內容,你又想了解更多相關內容,請關注文章開頭的微信公眾號,新內容持續更新中,后期將會有更多精彩內容出現。

 

閱讀原文

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM