一、窗口看門狗由從APB1時鐘分頻后得到時鐘驅動。
通過可配置的時間窗口來檢測應用程序非正常的過遲或過早操作。
窗口看門狗最適合那些要求看門狗在精確計時窗口起作用的程序。
二、什么是窗口看門狗?
窗口就是因為其喂狗時間是一個有上下限的范圍內(窗口),你可以通過設定相關寄存器,設定其上限時間(下限固定)。喂狗的時間不能過早也不能過晚。
而獨立看門狗限制喂狗時間在0-x內,x由相關寄存器決定。喂狗的時間不能過晚
三、窗口看門狗的好處
對于一般的看門狗,因為是在復位前的任意時刻刷新看門狗,但有可能程序跑亂了又跑回到正常的地方,或跑亂的程序正好執行了刷新看門狗操作,這樣的情況下就檢測不出來了;
如果使用窗口看門狗,程序員可以根據程序正常執行的時間設置刷新看門狗的一個時間窗口,保證不會提前也不會滯后刷新看門狗,這樣可以檢測出程序沒有按照正常的路徑運行非正常地跳過了某些程序段的情況。
四、窗口看門狗工作示意圖及框圖
上窗口值W[6:0]必須大于下窗口值0x40。否則就無窗口了
工作示意圖
五、產生復位的幾種條件
STM32F的窗口看門狗中有一個7位的遞減計數器T[6:0],它會在出現下述2種情況之一時產生看門狗復位:
①當喂狗的時候如果計數器的值大于某一設定數值W[6:0]時,此設定數值在WWDG_CFR寄存器定義。
②當計數器的數值從0x40減到0x3F時【T6位跳變到0】。
如果啟動了看門狗并且允許中斷,當遞減計數器等于0x40時產生早期喚醒中斷(EWI),它可以用于喂狗以避免WWDG復位。
六、窗口看門狗配置過程
①使能看門狗時鐘:
RCC_APB1PeriphClockCmd();
② 設置分頻系數:
WWDG_SetPrescaler();
③設置上窗口值:
WWDG_SetWindowValue();
④開啟提前喚醒中斷并分組(可選):
WWDG_EnableIT();
NVIC_Init();
⑤使能看門狗:
WWDG_Enable();
⑥喂狗:
WWDG_SetCounter();
⑦編寫中斷服務函數
WWDG_IRQHandler();
-------------------------------------------------------------------------------------------------------
代碼如下:
void init_wwdg(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
//使能wwdg時鐘
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
// WWDG_CNT=0x7F&WWDG_CNT; //初始化WWDG_CNT.
//設置看門狗時鐘 1281Hz = (PCLK1 (42MHz)/4096)/8 = 1281 Hz (~780 us)
//指定WWDG預分頻器
WWDG_SetPrescaler(WWDG_Prescaler_8);//Prescaler:計數器時鐘
//設置窗口值為80; WWDG計數器只有在計數器時才能刷新低于80(大于64),否則會產生復位
WWDG_SetWindowValue(0x60);
//設置重載計數值,也就是喂狗
WWDG_Enable(0x7f);
// 初始化中斷
NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn; // EXTI0的中斷向量號
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; // 搶占優先級
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; // 響應優先級
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能中斷
NVIC_Init(&NVIC_InitStructure);
// 清空提前喚醒中斷的標志位
WWDG_ClearFlag();
// 使能提前喚醒中斷
WWDG_EnableIT();
}
//當遞減計數器遞減到0x40時,觸發中斷函數,進行喂狗
void WWDG_IRQHandler(void)
{
if(WWDG_GetFlagStatus() == SET)
{
// 喂狗
WWDG_SetCounter(127);
//WWDG_SetCounter(WWDG_CNT);
//清空提前喚醒中斷的標志位
WWDG_ClearFlag();
}
}
上一篇:STM32的ADC的原理與使用
下一篇:STM32的獨立看門狗(IWDG)
推薦閱讀
史海拾趣
隨著LED技術的不斷進步,廣東長利光電也在不斷創新和升級產品。公司投入大量資源進行研發,推出了一系列高性能、高穩定性的LED產品。這些產品在照明、顯示等領域得到了廣泛應用,為公司帶來了豐厚的回報。同時,公司還積極與客戶合作,根據市場需求定制個性化產品,進一步提升了市場競爭力。
隨著全球環保意識的日益增強,Bel Power Solutions積極響應號召,將環保理念融入產品設計和生產中。公司推出了多款環保型電源產品,如高效能、低能耗的DC-DC轉換器和電源供應器,幫助客戶降低能耗、減少碳排放。同時,公司還致力于研發和推廣可再生能源應用技術,為可持續發展做出貢獻。
隨著公司規模的不斷擴大,CP Technology Inc開始實施全球化戰略。公司在海外設立了研發中心和銷售網絡,以更好地服務全球客戶。同時,公司還積極參與國際電子行業的交流與合作,不斷提升自身的技術水平和市場競爭力。
隨著公司規模的不斷擴大,CP Technology Inc開始實施全球化戰略。公司在海外設立了研發中心和銷售網絡,以更好地服務全球客戶。同時,公司還積極參與國際電子行業的交流與合作,不斷提升自身的技術水平和市場競爭力。
為了降低生產成本、提高生產效率,博林公司開始實施產業鏈整合戰略。公司通過收購、兼并等方式,逐步掌握了從原材料供應到終端產品銷售的完整產業鏈。同時,博林公司還積極向垂直化方向發展,涉足與電子產品相關的多個領域,如芯片設計、軟件開發等。這種垂直化的發展模式使得博林公司在行業中更具競爭力,能夠更好地應對市場變化和客戶需求。
隨著環保意識的日益增強,Cretex積極響應國家綠色發展的號召,將綠色環保理念融入產品研發和生產過程中。他們采用環保材料和生產工藝,減少了對環境的污染。同時,公司還推出了一系列節能減排的電子產品,幫助客戶降低能耗、減少碳排放。這些舉措不僅提升了公司的社會形象,也為公司的可持續發展奠定了堅實基礎。
[ip]快畢業了,畢業論文是 基于modbus協議的數據采集系統,不知道各位高手們有沒有想要對我這個笨笨知道的地方.謝謝,謝謝,十分感謝.… 查看全部問答∨ |
|
想做個東西,簡單來講就是通過外部設備給單片機一個開關信號,然后通過單片機告訴PC,再由PC根據信號進行程序處理,PC串口已經占用,所以用網口來實現。 單片機能否直接做協議轉換,還是還要通過一個專用芯片來做,請兄弟們幫忙提出一個解決方案。… 查看全部問答∨ |
|
問題1:高端中斷向量是什么意思?以IRQ中斷為例,中斷產生后先是跳到0x18處,然后再跳到中斷處理函數,這是不是就是所謂的低端中斷向量? 問題2:如果是高端中斷向量,是不是irq中斷發生后,并不是跳到0x18處,而是跳到自己指定的地址? 問題3: ...… 查看全部問答∨ |
|
各位大俠:小弟現需在WinCE5.0開發wifi driver,以前完全沒有相關經驗,完全沒有概念,模不著頭腦,問題真的很多。感覺微軟本身的文檔挺混亂的,說的也不怎么具體,大家有沒有好的教材?最好可以可以手把手教這個開發過程的?。ǖ谝徊阶鍪裁?,第二 ...… 查看全部問答∨ |
收集到很多關于Altium Designer 資料,希望對大家有所幫助。 [ 本帖最后由 熊貓 于 2010-12-23 20:17 編輯 ]… 查看全部問答∨ |
這篇學習筆記,完全是基于《STM32不完全手冊》而言的,我沒有買Alientek的開發板,買的是ARMFly的,其實都差不多,只不過安福萊的板載資源非常豐富罷了,應用起來其實都差不都。 《STM32不完全手冊》的51到56頁就是要這次筆記學習的內容,請自己參 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 試用Vishay新型“IHLP磁芯損耗計算器”,搶樓贏好禮
- LPC4370重磅來襲 有獎問答贏好禮!
- 電子工程師,如何更好地擁抱GaN?參與問卷有好禮!
- 報名贏京東卡 | 國產FPGA安路科技2024線上新品發布會
- 兆易GD32450I-EVAL免費測評試用
- 追更有驚喜:解救被FSM折磨過的你,justd0解析LSM6DSOX有限狀態機官方例程
- 電路圖站2.0版上線,公開征集網友建議,填寫調查問卷贏積分!
- 全球首款Cortex-M23內核物聯網芯片SAML10和SAM L11系列 闖關獲取SAML10/SAML11法寶,拆除電子界安全危機,贏好禮!
- 邀請好友體驗WEBENCH,禮品豐厚你有他也有!