新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何使用STM32的窗口看門狗

        如何使用STM32的窗口看門狗

        作者: 時間:2016-12-02 來源:網絡 收藏
        32F的窗口看門狗中有一個7位的遞減計數器,它會在出現下述2種情況之一時產生看門狗復位:
        1)當計數器的數值從0x40減到0x3F時
        2)當刷新看門狗時計數器的數值大于某一設定數值時,此設定數值在WWDG_CFR寄存器定義
        對于一般的看門狗,程序可以在它產生復位前的任意時刻刷新看門狗,但這有一個隱患,有可能程序跑亂了又跑回到正常的地方,或跑亂的程序正好執行了刷新看門狗操作,這樣的情況下一般的看門狗就檢測不出來了;如果使用窗口看門狗,程序員可以根據程序正常執行的時間設置刷新看門狗的一個時間窗口,保證不會提前刷新看門狗也不會滯后刷新看門狗,這樣可以檢測出程序沒有按照正常的路徑運行非正常地跳過了某些程序段的情況。
        WWDG與IWDG的主要區別是有一個窗口控制,WWDG的中斷是給你最后一次喂狗的機會,通常這個中斷不是讓你執行喂狗操作的;一般進到這個中斷時表示你在其它地方安排的喂狗操作不能奏效,而發生這種現象時,肯定是系統有問題了,或者是程序有Bug,或者是碰到了干擾,在這種情況下,這個中斷是為了讓你的程序在發生真正的看門狗復位前,有一個緊急處理的機會,如保存重要的數據,或做系統剎車等操作。
        由此看出,簡單地在WWDG中斷喂狗,既沒有發揮WWDG相對于IWDG的優勢,又因為在中斷中喂狗而為以后的產品留下了隱患。
        注:通常的看門狗與STM32的IWDG特點是一樣的。


        關鍵詞: STM32窗口看門

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 济阳县| 双流县| 锦州市| 太白县| 新绛县| 双牌县| 定远县| 康马县| 朝阳县| 红安县| 西丰县| 平阴县| 炎陵县| 万源市| 贡觉县| 维西| 元氏县| 吕梁市| 东乌珠穆沁旗| 娄底市| 襄樊市| 潍坊市| 扶余县| 平定县| 囊谦县| 兰州市| 和静县| 青神县| 逊克县| 海淀区| 剑河县| 怀宁县| 宝坻区| 安福县| 内丘县| 泰和县| 贵港市| 宁晋县| 漠河县| 胶州市| 开封县|