<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32F4——獨立看門(mén)狗與窗口看門(mén)狗

STM32F4——獨立看門(mén)狗與窗口看門(mén)狗

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò ) 收藏
一、簡(jiǎn)介:

其用于檢測和解決由軟件錯誤導致的故障,當計數器達到設定的超時(shí)時(shí)間值時(shí)會(huì )產(chǎn)生系統復位。其特點(diǎn)為:1、其運用的時(shí)鐘是由獨立的RC振蕩器產(chǎn)生的,因此可以在待機和停止模式下運行。2、在看門(mén)狗激活后,如果遞減計數器的值達到0X000時(shí)會(huì )產(chǎn)生系統復位。

本文引用地址:http://dyxdggzs.com/article/201611/318188.htm

二、功能簡(jiǎn)述:

通過(guò)向關(guān)鍵字寄存器(IWDG_KR)寫(xiě)入0XCCCC啟動(dòng)獨立看門(mén)狗,計數器會(huì )從復位值0XFFF,遞減計數,當計數器的值達到0X000時(shí),產(chǎn)生復位信號。在計數值還未達到0X000時(shí),向IWDG_KR寄存器寫(xiě)入0XAAAA,IWDG_RLR寄存器的值就會(huì )重裝載到計時(shí)器,從而可以避免產(chǎn)生復位(俗稱(chēng)喂狗)。從而可以看出,當軟件運行出問(wèn)題時(shí),在一定的時(shí)間內無(wú)法做到喂狗的功能時(shí),就會(huì )產(chǎn)生系統復位,實(shí)現其對軟件故障的檢測和解決。

三、相關(guān)寄存器:

1、關(guān)鍵字寄存器:

關(guān)鍵字寄存器的有效位為位0到位15,位16到位31保留,前邊已經(jīng)介紹過(guò)通過(guò)向該寄存器中寫(xiě)入0XAAAA,可以使IWDG_RLR寄存器中的值重裝載到計數器,避免系統復位。由于IWDG_PR(預分頻器寄存器)和IWDG_RLR(重載寄存器)是具有寫(xiě)保護的寄存器,在該寄存器中寫(xiě)入鍵值0X5555可使能對IWDG_PR和IWDG_RLR的訪(fǎng)問(wèn)。

2、預分頻器寄存器:

該寄存器的有效位為位0到位2,其他位保留,通過(guò)設置PR[2:0]的值,設定相應的分頻系數。

3、重載寄存器:

上面已經(jīng)提到該寄存器中的值會(huì )重裝載到計數器中,計數器將會(huì )從該值遞減計數,由此可見(jiàn):該寄存器中的值和預分頻器寄存器中的值共同決定超時(shí)周期。

4、狀態(tài)寄存器:

該寄存器只有位0和位1為有效位,位0(RVU)為預分頻器寄存器的值更新標志位,位1(PVU)為計數器重載值更新標志。

四、相關(guān)代碼分析:

通過(guò)相關(guān)庫函數對獨立看門(mén)狗的配置還是相對簡(jiǎn)單的,其中初始化的過(guò)程如下:

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能對IWDG->PR IWDG->RLR的寫(xiě)IWDG_SetPrescaler(prer); //設置IWDG分頻系數IWDG_SetReload(rlr);   //設置IWDG裝載值IWDG_ReloadCounter(); //reload(喂狗)IWDG_Enable();       //使能看門(mén)狗

窗口看門(mén)狗

一、簡(jiǎn)介:

對比獨立看門(mén)狗來(lái)看,所謂的窗口看門(mén)狗就是設定了一個(gè)窗口值(上限和下限值)。當遞減計數器值小于0X40(窗口下限值)時(shí)產(chǎn)生復位。在設置的窗口外重載遞減計數器也會(huì )執行復位。窗口看門(mén)狗可以設置提前喚醒中斷,當遞減計數器等于0X40時(shí)會(huì )觸發(fā)該中斷,可以在該中斷中做喂狗等相關(guān)操作。

二、框圖

窗口看門(mén)狗的框圖如下:對比的框圖來(lái)看下邊的相關(guān)介紹!


三、工作過(guò)程:

通過(guò)設置WWDG_CR寄存器的WDGA位可以使能看門(mén)狗,遞減計數器為控制寄存器的低7位,其中當第7位(即T6)由1變?yōu)?(即由0X40遞減為0X3F)時(shí)就會(huì )復位,在配置寄存器低7位存放看門(mén)狗上限值,計數器中的值與上限值比較,如果在上限值之上喂狗也會(huì )執行復位,這也是窗口看門(mén)狗與獨立看門(mén)狗的不同之處。由此可見(jiàn),喂狗的時(shí)間只能在上限和下限值之間,否則就會(huì )執行復位操作。

四、相關(guān)寄存器:

1、控制寄存器(WWDG_CR):

前面已經(jīng)介紹過(guò)了,其中有效位為位0到位7,位7(WDGA)為看門(mén)狗激活位,位0到位6做計數器。

2、配置寄存器(WWDG_CFR):

該寄存器的有效位為位0到位9,位0到位6前面已經(jīng)介紹過(guò)存放的是計數器的上限值,位7和位8用來(lái)設置定時(shí)器時(shí)基,從而選定相應的時(shí)鐘分頻器。其中位9就是上邊介紹到的提前喚醒中斷(EWI)。

3、狀態(tài)寄存器(WWDG_SR):

該寄存器中的有效位只有位0,用來(lái)做提前喚醒中斷的標志位(EWIF)。

五、相關(guān)代碼分析:

說(shuō)明:由于窗口看門(mén)狗運用的時(shí)鐘為PCLK1,因此要先使能相關(guān)時(shí)鐘。在代碼中是以開(kāi)啟了提前喚醒中斷為例的,試著(zhù)將相關(guān)的庫函數操作和其操作的寄存器對應上。

NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); //使能窗口看門(mén)狗時(shí)鐘WWDG_CNT=tr&WWDG_CNT;   //初始化WWDG_CNT. WWDG_SetPrescaler(fprer); //設置分頻值WWDG_SetWindowValue(wr); //設置窗口值WWDG_Enable(WWDG_CNT);  //開(kāi)啟看門(mén)狗NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn;  //窗口看門(mén)狗中斷NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;  //搶占優(yōu)先級為2NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;	    //子優(yōu)先級為3NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;  //使能窗口看門(mén)狗NVIC_Init(&NVIC_InitStructure);WWDG_ClearFlag();//清除提前喚醒中斷標志位WWDG_EnableIT();//開(kāi)啟提前喚醒中斷

有關(guān)獨立看門(mén)狗和窗口看門(mén)狗的介紹就到這里,它們還是相對簡(jiǎn)單的,應用起來(lái)也十分的方便和簡(jiǎn)單,希望對大家有所啟發(fā)和幫助吧??!



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>