




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第12章章 看門狗看門狗12.1 獨立看門狗獨立看門狗IWDGl12.1.1獨立看門狗特性獨立看門狗特性l (1)時鐘完全獨立,由內(nèi)部)時鐘完全獨立,由內(nèi)部RC振蕩器振蕩器(LSI)提供;因此即提供;因此即使主時鐘發(fā)生故障無法運行,獨立看門狗依然能夠正常運使主時鐘發(fā)生故障無法運行,獨立看門狗依然能夠正常運轉(zhuǎn)。轉(zhuǎn)。l ( 2 )獨立看門狗計數(shù)器自動遞減;)獨立看門狗計數(shù)器自動遞減;l (3)看門狗被激活后,如果在計數(shù)器減為)看門狗被激活后,如果在計數(shù)器減為0之前仍然沒有之前仍然沒有手動重新加載計數(shù)值,看門狗便產(chǎn)生復(fù)位。手動重新加載計數(shù)值,看門狗便產(chǎn)生復(fù)位。l (4)如果用戶在選擇字節(jié)中啟用了)
2、如果用戶在選擇字節(jié)中啟用了“硬件看門狗硬件看門狗”功能,在功能,在系統(tǒng)上電復(fù)位后,看門狗會自動開始運行;如果在計數(shù)器系統(tǒng)上電復(fù)位后,看門狗會自動開始運行;如果在計數(shù)器計數(shù)結(jié)束前,若軟件沒有向鍵寄存器寫入相應(yīng)的值,則系計數(shù)結(jié)束前,若軟件沒有向鍵寄存器寫入相應(yīng)的值,則系統(tǒng)會產(chǎn)生復(fù)位。此功能需要編譯器或者其他第三方工具的統(tǒng)會產(chǎn)生復(fù)位。此功能需要編譯器或者其他第三方工具的支持才可以用。支持才可以用。 l (5)軟件啟動看門狗需要往)軟件啟動看門狗需要往IWDG_KR寄存器寫入寄存器寫入0XCCCC。l12.1.2 寄存器訪問時序寄存器訪問時序l IWDG_PR和和IWDG_RLR寄存器不同與其他寄存器
3、,這兩個寄存器不同與其他寄存器,這兩個寄存器具有寫保護(hù),在修改這兩個寄存器之前,必須先向寄存器具有寫保護(hù),在修改這兩個寄存器之前,必須先向IWDG_KR寄存器寫入寄存器寫入0X5555,其他值將會打亂操作順序,其他值將會打亂操作順序,寄存器將重新被保護(hù)。在正確寫入寄存器將重新被保護(hù)。在正確寫入0X5555后,再往寄存器后,再往寄存器IWDG_RLR寫入寫入0XAAAA即可實現(xiàn)計數(shù)器值的重裝載,否則即可實現(xiàn)計數(shù)器值的重裝載,否則在計數(shù)器為在計數(shù)器為0時將會產(chǎn)生復(fù)位。時將會產(chǎn)生復(fù)位。l12.1.3 預(yù)分頻和重裝值預(yù)分頻和重裝值l 寄存器寄存器IWDG_PR的低的低3位控制了獨立看門狗的時鐘分頻系位
4、控制了獨立看門狗的時鐘分頻系數(shù),數(shù),IWDG_RLR的低的低12位控制了看門狗的計數(shù)值,這兩個位控制了看門狗的計數(shù)值,這兩個寄存器最終決定了看門狗的超時時間。寄存器最終決定了看門狗的超時時間。l 由于內(nèi)部由于內(nèi)部RC振蕩器振蕩器(LSI)的精度誤差很大,的精度誤差很大,LSI的振蕩頻率為的振蕩頻率為30K60KHz之間,因此實際的超時時間和預(yù)設(shè)的存在一定之間,因此實際的超時時間和預(yù)設(shè)的存在一定差異。通過對差異。通過對LSI進(jìn)行校準(zhǔn)可獲得相對精確的看門狗超時時進(jìn)行校準(zhǔn)可獲得相對精確的看門狗超時時間。間。12.2 IWDG寄存器描述寄存器描述l12.2.1 鍵寄存器鍵寄存器IWDG_KRl12.2
5、.2 預(yù)分頻寄存器預(yù)分頻寄存器IWDG_PR12.2.3 重裝載寄存器重裝載寄存器IWDG_RLRl12.2.4 狀態(tài)寄存器狀態(tài)寄存器IWDG_SR12.3 窗口看門狗窗口看門狗WWDGl12.3.1 窗口看門狗特性窗口看門狗特性l 時鐘由時鐘由PCLK1提供;時鐘精度比較高,通常被用來做監(jiān)測;提供;時鐘精度比較高,通常被用來做監(jiān)測;l 可編程的自由遞減計數(shù)器;可編程的自由遞減計數(shù)器;l 如果啟動如果啟動WWDG,當(dāng)遞減計數(shù)器值為,當(dāng)遞減計數(shù)器值為0X40時,如果允許中時,如果允許中斷,將會產(chǎn)生早期喚醒中斷斷,將會產(chǎn)生早期喚醒中斷EWI,可以用于重載計數(shù)器以避,可以用于重載計數(shù)器以避免被復(fù)位;
6、當(dāng)遞減計數(shù)器小于免被復(fù)位;當(dāng)遞減計數(shù)器小于0X40時,將會產(chǎn)生復(fù)位;如時,將會產(chǎn)生復(fù)位;如果在遞減計數(shù)器的值還未達(dá)到窗口值時又被軟件重新載入果在遞減計數(shù)器的值還未達(dá)到窗口值時又被軟件重新載入,也會產(chǎn)生復(fù)位。也就是說,計數(shù)值的重新載入不能太早,也會產(chǎn)生復(fù)位。也就是說,計數(shù)值的重新載入不能太早,也不能太晚,必須在設(shè)定的時間窗口內(nèi)進(jìn)行。,也不能太晚,必須在設(shè)定的時間窗口內(nèi)進(jìn)行。l12.3.2 配置窗口看門狗配置窗口看門狗l 應(yīng)用程序在正常運行過程中必須定期地寫入應(yīng)用程序在正常運行過程中必須定期地寫入WWDG_CR寄寄存器以防止存器以防止MCU發(fā)生復(fù)位。只有當(dāng)計數(shù)器值小于窗口寄存發(fā)生復(fù)位。只有當(dāng)計數(shù)器
7、值小于窗口寄存器的值時,才能進(jìn)行寫操作。儲存在器的值時,才能進(jìn)行寫操作。儲存在WWDG_CR寄存器中寄存器中的數(shù)值必須在的數(shù)值必須在0 xFF和和0 xC0之間:之間: l 啟動看門狗啟動看門狗 l 在系統(tǒng)復(fù)位后,看門狗總是處于關(guān)閉狀態(tài),設(shè)置在系統(tǒng)復(fù)位后,看門狗總是處于關(guān)閉狀態(tài),設(shè)置WWDG_CR寄存器的寄存器的WDGA位能夠開啟看門狗,隨后它不位能夠開啟看門狗,隨后它不能再被關(guān)閉,除非發(fā)生復(fù)位。能再被關(guān)閉,除非發(fā)生復(fù)位。 l 控制遞減計數(shù)器控制遞減計數(shù)器 l 遞減計數(shù)器處于自由運行狀態(tài),即使看門狗被禁止,遞減遞減計數(shù)器處于自由運行狀態(tài),即使看門狗被禁止,遞減計數(shù)器仍繼續(xù)遞減計數(shù)。當(dāng)看門狗被啟
8、用時,計數(shù)器仍繼續(xù)遞減計數(shù)。當(dāng)看門狗被啟用時,T6位必須被位必須被設(shè)置,以防止立即產(chǎn)生一個復(fù)位,因此寫入的最小值為設(shè)置,以防止立即產(chǎn)生一個復(fù)位,因此寫入的最小值為0XC0。 T5:0位包含了看門狗產(chǎn)生復(fù)位之前的計時數(shù)目;位包含了看門狗產(chǎn)生復(fù)位之前的計時數(shù)目;復(fù)位前的延時時間在一個最小值和一個最大值之間變化,復(fù)位前的延時時間在一個最小值和一個最大值之間變化,這是因為寫入這是因為寫入WWDG_CR寄存器時,預(yù)分頻值是未知的。寄存器時,預(yù)分頻值是未知的。 l 配置寄存器配置寄存器(WWDG_CFR) 中包含窗口的上限值:要避免產(chǎn)中包含窗口的上限值:要避免產(chǎn)生復(fù)位,遞減計數(shù)器必須在其值小于窗口寄存器的
9、數(shù)值并生復(fù)位,遞減計數(shù)器必須在其值小于窗口寄存器的數(shù)值并且大于且大于0 x3F時被重新裝載,時被重新裝載,0描述了窗口寄存器的工作過描述了窗口寄存器的工作過程。程。 另一個重裝載計數(shù)器的方法是利用早期喚醒中斷另一個重裝載計數(shù)器的方法是利用早期喚醒中斷(EWI)。設(shè)置。設(shè)置WWDG_CFR寄存器中的寄存器中的WEI位開啟該中斷。當(dāng)位開啟該中斷。當(dāng)遞減計數(shù)器到達(dá)遞減計數(shù)器到達(dá)0 x40時,則產(chǎn)生此中斷,相應(yīng)的中斷服務(wù)時,則產(chǎn)生此中斷,相應(yīng)的中斷服務(wù)程序程序(ISR)可以用來加載計數(shù)器以防止可以用來加載計數(shù)器以防止WWDG復(fù)位。在復(fù)位。在WWDG_SR寄存器中寫寄存器中寫0可以清除該中斷??梢郧宄?/p>
10、中斷。 l 超時的計算公式如下:超時的計算公式如下:l TWWDG = TPCLK1 x 4096 x 2WDGTBx (T5:0 + 1); (ms) l TPCLK1:APB1以以ms為單位的時鐘間隔為單位的時鐘間隔 l 在在PCLK1 = 36MHz時的最小時的最小-最大超時值最大超時值12.4 WWDG看門狗寄存器看門狗寄存器l12.4.1 控制寄存器控制寄存器WWDG_CRl12.4.2 配置寄存器配置寄存器WWDG_CFRl12.4.3 狀態(tài)寄存器狀態(tài)寄存器WWDG_SR12.5 WWDG庫函數(shù)庫函數(shù)l12.5.1 WWDG寄存器結(jié)構(gòu)寄存器結(jié)構(gòu)l WWDG_TypeDeff,在文件
11、,在文件“sm32f10 x_map.h”中定義如中定義如下:下: l typedef struct l l vu32 CR; l vu32 CFR; l vu32 SR; l WWDG_TypeDef; l 列舉了列舉了WWDG所有寄存器所有寄存器 l12.5.2 WWDG庫函數(shù)庫函數(shù)l 1.函數(shù)函數(shù)void WWDG_DeInit( void )l 功能描述:將外設(shè)功能描述:將外設(shè)WWDG寄存器重設(shè)為缺省值寄存器重設(shè)為缺省值l 例:例: WWDG_DeInit(); l 2 函數(shù)函數(shù)void WWDG_SetPrescaler(u32 WWDG_Prescaler)l 功能描述:功能描述:
12、設(shè)置設(shè)置WWDG預(yù)分頻值預(yù)分頻值l 輸入?yún)?shù):輸入?yún)?shù):WWDG_Prescaler:指定:指定WWDG預(yù)分頻,該預(yù)分頻,該參數(shù)設(shè)參數(shù)設(shè)WWDG預(yù)分頻值如下預(yù)分頻值如下l 例:例: WWDG_SetPrescaler(WWDG_Prescaler_8);l 3 函數(shù)函數(shù) void WWDG_SetWindowValue(u8 WindowValue)l 功能描述:設(shè)置功能描述:設(shè)置WWDG窗口值窗口值l 輸入?yún)?shù):輸入?yún)?shù):WindowValue:指定的窗口值。取值在:指定的窗口值。取值在0 x40-0 x7F之間(可用于之間(可用于0-64分頻)分頻)l 例:例:WWDG_SetWindow
13、Value(0 x50); l 4 函數(shù)函數(shù)WWDG_EnableITl 函數(shù)原形函數(shù)原形void WWDG_EnableIT(void) l 功能描述功能描述使能使能WWDG早期喚醒中斷(早期喚醒中斷(EWI)-CFR.Bit9l 例:例: WWDG_EnableIT(); l 5 函數(shù)函數(shù)void WWDG_SetCounter(u8 Counter)l 功能描述功能描述設(shè)置設(shè)置WWDG計數(shù)器值計數(shù)器值l 輸入?yún)?shù)輸入?yún)?shù)Counter:指定看門狗計數(shù)器值。參數(shù)取值在:指定看門狗計數(shù)器值。參數(shù)取值在0 x40-0 x7F之間。之間。l 例:例:WWDG_SetCounter(0 x70);
14、 l 6 函數(shù)函數(shù) Void WWDG_Enable(u8 Counter) l 功能描述功能描述使能使能WWDG并裝入計數(shù)器值(并裝入計數(shù)器值(1)l 輸入?yún)?shù)輸入?yún)?shù)Counter:指定看門狗計數(shù)器值。參數(shù)取值在:指定看門狗計數(shù)器值。參數(shù)取值在0 x40-0 x7F 之間之間l WWDG一旦被使能就不能被失能。一旦被使能就不能被失能。l 例:例: WWDG_Enable(0 x7F); l 7 函數(shù)函數(shù)FlagStatus WWDG_GetFlagStatus(void) l 功能描述功能描述:檢查檢查WWDG早期喚醒中斷標(biāo)志位被設(shè)置與否早期喚醒中斷標(biāo)志位被設(shè)置與否l 返回值:返回值:早期
15、喚醒中斷標(biāo)志位的新狀態(tài)(早期喚醒中斷標(biāo)志位的新狀態(tài)(SET或或RESET)先決)先決l 例:例:l FlagStatus Status; l Status = WWDG_GetFlagStatus(); l if(Status = RESET) . l else . l 8.函數(shù)函數(shù)void WWDG_ClearFlag(void)l 功能描述功能描述清除早期喚醒中斷標(biāo)志位清除早期喚醒中斷標(biāo)志位l 例:例: WWDG_ClearFlag();12.6 看門狗應(yīng)用示例看門狗應(yīng)用示例l 本節(jié)例程使用了本節(jié)例程使用了ST官方提供的固件庫實現(xiàn)獨立看門狗超時官方提供的固件庫實現(xiàn)獨立看門狗超時復(fù)位。本例程設(shè)置獨立看門狗超時復(fù)位時間為復(fù)位。本例程設(shè)置獨立
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電暖器安全知識培訓(xùn)課件
- 三重管旋噴樁施工方案
- 自進(jìn)式錨桿施工方案
- 肛腸科醫(yī)院培訓(xùn)
- 課題開題報告:基于OBE理念的高校公共體育課程體系構(gòu)建研究
- 課題開題報告:基礎(chǔ)教育高質(zhì)量發(fā)展背景下鄉(xiāng)村教師專業(yè)發(fā)展的動力機制研究
- 課題開題報告:湖北省職業(yè)院校開展高質(zhì)量職業(yè)培訓(xùn)研究與實踐
- 課題開題報告:湖北高水平教育對外開放體系研究
- 課題開題報告:海外留學(xué)預(yù)警機制研究
- 課題開題報告:構(gòu)建高質(zhì)量基礎(chǔ)教育育人模式研究
- 關(guān)于魯迅簡介
- 余華讀書分享名著導(dǎo)讀《文城》
- Horiba 流量計中文說明書
- 鑒定前設(shè)施設(shè)備檢查記錄表樣本
- 植物組織培養(yǎng)(園林植物教研組)-說課稿
- 高三二輪專題復(fù)習(xí)化學(xué)課件-分布系數(shù)(分?jǐn)?shù))圖像
- 變更更正戶口項目申請表
- (譯林版)六年級英語完形填空100篇(含答案和講解)
- 云南省蒙自市長橋海水庫擴(kuò)建工程環(huán)評報告
- 大數(shù)據(jù)分析教學(xué)大綱教案
- 質(zhì)量手冊(依據(jù)ISO9001:2023年標(biāo)準(zhǔn))
評論
0/150
提交評論