當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]STM32F4xx內(nèi)置倆個(gè)看門狗,提供了更高的安全性、時(shí)間的精確性和使用的靈活性。兩個(gè)看門狗設(shè)備可用來(lái)檢測(cè)和解決由軟件錯(cuò)誤引起的故障;當(dāng)計(jì)數(shù)器大道給定的超時(shí)值觸發(fā)一個(gè)中斷(觸發(fā)中斷僅適用于窗口看門狗)或產(chǎn)生系統(tǒng)

STM32F4xx內(nèi)置倆個(gè)看門狗,提供了更高的安全性、時(shí)間的精確性和使用的靈活性。兩個(gè)看門狗設(shè)備可用來(lái)檢測(cè)和解決由軟件錯(cuò)誤引起的故障;當(dāng)計(jì)數(shù)器大道給定的超時(shí)值觸發(fā)一個(gè)中斷(觸發(fā)中斷僅適用于窗口看門狗)或產(chǎn)生系統(tǒng)復(fù)位。
地理看門狗IWDG有用們的低速時(shí)鐘LSI驅(qū)動(dòng),及時(shí)主時(shí)鐘發(fā)生故障他也任然有效。窗口看門狗由APB1是中國(guó)分頻后得到的時(shí)鐘驅(qū)動(dòng),通過可配置的時(shí)間窗口來(lái)檢測(cè)應(yīng)用程序非正常的過遲或過早的操作。
IWDG最時(shí)候用于哪些需要一個(gè)看門狗在主程序之外能夠獨(dú)立工作并且對(duì)時(shí)間精度要求較低的場(chǎng)合,WWDG適合用于哪些要求看門狗在精確計(jì)算計(jì)時(shí)窗口起作用的應(yīng)用程序。

IWDG主要特性與功能
·自由運(yùn)行的遞減計(jì)數(shù)器
·時(shí)鐘由獨(dú)立RC振蕩器提供(可工作在停止和待機(jī)模式下)
·看門狗被激活后,則在計(jì)數(shù)器計(jì)到0x000是產(chǎn)生復(fù)位

在寄存器(IWDG_KR)中寫入0xCCCC,開始啟用獨(dú)立看門狗;此時(shí)計(jì)數(shù)器開始從其復(fù)位值0xFFF遞減計(jì)數(shù)。當(dāng)計(jì)數(shù)器寄到末尾0x000時(shí)會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)(IWDG_RESET)。無(wú)論何時(shí),只要在寄存器IWDG中寫入IWDG_KR中寫入0xAAAA,IWDG_RLR中的值就會(huì)被重新加載到計(jì)數(shù)器,從而避免產(chǎn)生看門狗復(fù)位。

硬件看門狗
如果用戶在選擇字節(jié)中啟用了“硬件看門狗”,在系統(tǒng)上電復(fù)位后,看門狗會(huì)自動(dòng)開始運(yùn)行;如果在計(jì)數(shù)器結(jié)束前,若軟件沒有向寄存器寫入相應(yīng)的值,則系統(tǒng)會(huì)產(chǎn)生復(fù)位。
寄存器訪問保護(hù)
IWDG_PR和IWDG_RLR寄存器具有寫保護(hù)功能。要修改這兩個(gè)寄存器的值,必須先向IWDG_KR寄存器中寫入0x5555.以不同的值寫入這個(gè)寄存器將會(huì)打亂操作順序,寄存器將重新被保護(hù)。重裝在操作(寫入0
xAAAA)也會(huì)啟動(dòng)寫保護(hù)功能。狀態(tài)寄存器指示預(yù)分配寄存器跟遞減計(jì)數(shù)器是否正在被更新。
調(diào)試模式
當(dāng)微控制器進(jìn)入調(diào)試模式時(shí)(M4核心停止),根據(jù)調(diào)試模塊中的DBG_IWDG_STOP配置位狀態(tài),IWDG的計(jì)數(shù)器能夠繼續(xù)工作或停止。

STM32F4的IWDG庫(kù)
下面是介紹如何使用看門狗驅(qū)動(dòng) :
·通過函數(shù)IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable)使能寫寄存器IWDG_PR和IWDG_RLR
·通過函數(shù)IWDG_SetPrescaler()配置IWDG分頻
·通過函數(shù)IWDG_SetReload配置IWDG計(jì)數(shù)器,每次重裝后,計(jì)數(shù)器將這個(gè)值做遞減。
·通過IWDG_Enable()來(lái)使能IWDG,當(dāng)看門狗工作在軟件模式時(shí)(不需要使能LSI,會(huì)有硬件自動(dòng)使能)。
·定時(shí)器應(yīng)該定時(shí)調(diào)用函數(shù)IWDG_ReloadCounter()防止系統(tǒng)復(fù)位。

分頻器和計(jì)數(shù)器配置函數(shù)
void IWDG_WriteAccessCmd(unit16_t IWDG_WriteAccess)
void IWDG_SetPrescaler(unit8_t IWDG_Prescaler)
void IWDG_SetPrescaler(uint16_t Relaod)
void IWDG_ReloadCounter(void)
看門狗激活函數(shù)
void IWDG_Enable(void)使能看門狗
標(biāo)志管理函數(shù)
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG)用于檢測(cè)看門狗標(biāo)志

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ù)位
·若果啟動(dòng)了看門狗并允許中斷,當(dāng)遞減計(jì)數(shù)器等于0x40是產(chǎn)生早起喚醒中斷(EWI),他可以被用于重裝載計(jì)數(shù)器避免WWD復(fù)位。

如果看門狗被啟動(dòng)(WWDG_CR寄存器中的WDGA位被置1),并且7位遞減計(jì)數(shù)器T【6:0]從0x40翻轉(zhuǎn)到0x3f(T6位清零)時(shí)則產(chǎn)生一個(gè)復(fù)位。如果軟件計(jì)數(shù)器大于窗口寄存器中的數(shù)值時(shí)重裝載計(jì)數(shù)器將產(chǎn)生一個(gè)復(fù)位。

應(yīng)用程序在正常運(yùn)行過程中必須定期的寫入WWDG_CR寄存器以防止MCU發(fā)生復(fù)位。只有當(dāng)計(jì)數(shù)器值小于窗口寄存器時(shí),才能進(jìn)行寫操作。存儲(chǔ)在WWDG_CR寄存器中的數(shù)值必須在0xff和0xc0之間。

啟動(dòng)看門狗
在系統(tǒng)復(fù)位后,看門狗總歸是處于關(guān)閉狀態(tài),設(shè)置WWDG_CR寄存器的WDGA位能夠開啟看門狗,隨后他不能再被關(guān)閉,除非發(fā)生復(fù)位。
控制遞減計(jì)數(shù)器
遞減計(jì)數(shù)器處于自由運(yùn)行狀態(tài),即使看門狗被關(guān)閉遞減計(jì)數(shù)器任然繼續(xù)遞減計(jì)數(shù)。當(dāng)看門狗被啟用時(shí)T6位必須被設(shè)置,以防止產(chǎn)生一個(gè)復(fù)位。T【5:0】位包含了看門狗復(fù)位產(chǎn)生之前的計(jì)數(shù)數(shù)目;復(fù)位前的延時(shí)在一個(gè)最小值和一個(gè)最大值之間變化,這是應(yīng)為寫入WWDG_CR是其預(yù)分頻是未知的。配置WWDG_CFR中包含窗口的上限值:要避免產(chǎn)生復(fù)位遞減計(jì)數(shù)器的值小于窗口寄存器的數(shù)值且大于0x3f時(shí)被重新裝載,0描述了窗口寄存器的工作過程。另一個(gè)重裝載計(jì)數(shù)器的方法是利用早期喚醒中斷EWI。設(shè)置WWDG_CFR寄存器中的WEI位開啟中斷。當(dāng)遞減計(jì)數(shù)器到達(dá)0x40時(shí),則產(chǎn)生次中斷,相應(yīng)的中斷服務(wù)程序ISR可以用來(lái)加載計(jì)數(shù)器防止WWDG復(fù)位。在WWDG_SR寄存器中寫0可以清楚該中斷。
注意:可以用 T6 位 產(chǎn)生一個(gè)軟件復(fù)位(設(shè)置 WDGA位為’ 1’, T6 位為’ 0’)。

看門狗中斷特性
實(shí)際的復(fù)位產(chǎn)生前,如果需要執(zhí)行專門的安全操作或者記錄數(shù)據(jù),呢么EWI中斷就派上了用場(chǎng)。EWI終端有WWDG_CFR的EWI使能位。當(dāng)?shù)亟ㄓ?jì)數(shù)器計(jì)到0x40的時(shí)候,EWI中斷將產(chǎn)生,在設(shè)備復(fù)位前,我們可以在中斷服務(wù)程序里面執(zhí)行或者數(shù)據(jù)記錄。
在一些應(yīng)用中,EWI終端可以被用來(lái)管理軟件系統(tǒng)檢查/或系統(tǒng)恢復(fù)graceful degradation,而不會(huì)產(chǎn)生一個(gè)WWDG復(fù)位。這種情況的話,用戶需要在ISR中清除中斷標(biāo)志并喂狗,防止產(chǎn)生系統(tǒng)復(fù)位。然后出發(fā)需要的操作。
EWI中斷可以通過向寄存器WWDG_SR的EWIF位寫0來(lái)清除。
調(diào)試模式
當(dāng)微控制器進(jìn)入調(diào)試模式(M4核心停止),根據(jù)調(diào)試中的DBG_WWDG_STOP配置位的狀態(tài),WWDG的計(jì)數(shù)器能夠繼續(xù)工作或停止

如何編寫串口看門狗程序

STM32F4的WWDG庫(kù)
WWDG計(jì)數(shù)器輸入時(shí)鐘是由 APB1時(shí)鐘分頻而來(lái):
WWDG 計(jì)數(shù)器時(shí)鐘 = PCLK1 / Prescaler
WWDG 溢出時(shí)間 = (WWDG counter clock) * (counter value)
最大最小溢出時(shí)間: @42 MHz(PCLK1): ~97.5 us / 49.9 ms
如何使用看門狗驅(qū)動(dòng)
·通過函數(shù)RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE)使能窗口看門狗時(shí)鐘
·通過函數(shù)WWDG_SetPrescaler()設(shè)置看門狗分頻。
·設(shè)置WWDG計(jì)數(shù)器數(shù)值,通過函數(shù)WWDG_Enable()啟動(dòng)WWDG,情動(dòng)WWDG以后,計(jì)數(shù)器的數(shù)值設(shè)置要大于0x40,防止立即產(chǎn)生復(fù)位
·用戶可以懸著是否產(chǎn)生EWI中斷,在此中斷計(jì)數(shù)器到0x40時(shí)產(chǎn)生,一旦是能。系統(tǒng)復(fù)位時(shí)將無(wú)法將其關(guān)閉
·在阻止系統(tǒng)產(chǎn)生福誒的正常操作期間,用戶需要在每個(gè)時(shí)間間隔通過函數(shù)WWDG_SetCounter()刷新計(jì)數(shù)器沒刷新操作只能在計(jì)數(shù)器值小于設(shè)定窗口只時(shí)進(jìn)行,窗口只通過函數(shù)WWDG_SetWindowValue()設(shè)定。

分頻器,窗口刷新,計(jì)數(shù)器配置函數(shù)
void WWDG_DeInit(void)
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler)
void WWDG_SetWindowValue(uint8_t WindowValue)
void WWDG_EnableIT(void)
void WWDG_SetCoounter(uint8_t Counter)
獨(dú)立看門狗激活函數(shù)
void WWDG_Enable(uint8_t Counter)
中斷標(biāo)志管理
FlagStatus WWDG_GetFlagStatue(void)
void WWDG_CLearFlag(void)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉