在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【GD32H757Z海棠派開發板使用手冊】第七講 FWDG-看門狗實驗

聚沃科技 ? 2024-05-10 09:37 ? 次閱讀
wKgZomYgeJOAUiXJAB6mQrDJGEg027.png

7.1實驗內容

通過本實驗主要學習以下內容:

  • 獨立看門狗的原理
  • 獨立看門狗功能介紹
  • 實現獨立看門狗功能

7.2實驗原理

7.2.1看門狗的原理

一般來說,搭配MCU產品都需要有長期運行的需求,特別像一些工業設備,可能要求運行個幾年都不關機,但誰也不能保證在這幾年里,MCU里面的代碼不出任何問題,更何況自然環境中還存在很多電磁干擾、靜電等,都可能會導致MCU出現運行異常的情況,比如程序卡死啦,進入錯誤狀態啦等等,這個時候,我們就可以通過一個非常可愛的外設——看門狗,來幫助MCU從異常狀態復位,讓程序重新開始從頭運行。

看門狗實際上是一個定時器,它的工作原理是:將看門狗定時器的計數器設定一個初始值,看門狗開始運行后,定時器中的計數值會在每一個計數器時鐘來的時候減1,如果這個計數值減到0,看門狗就會內部給MCU一個復位信號使MCU復位。所以應用程序中必須每隔一段時間要對看門狗的計數值進行一次重載(看門狗計數器恢復到初始值),這樣看門狗的計數器就不會減到0了,而當程序出現卡死的情況時,由于不再對看門狗計數器重載,看門狗就會讓MCU復位,使MCU從卡死狀態恢復出來。這種工作方式是不是就像一條狗,你要每隔一段時間去喂它,否則它就不給你“看門”了,“看門狗”的名字,就是這么來的。

GD32H757片上有兩個看門狗外設——獨立看門狗(FWDGT)和窗口看門狗(WWDGT),本章我們只講獨立看門狗。

7.2.2獨立看門狗(FWDGT)的時鐘

前面講到,看門狗的計數值在每一個計數器時鐘來的時候減1,那么這個時鐘是什么呢,我們來看一下GD32H757的時鐘樹:

wKgZomY9eTmAfNFMAABg30nrbgg563.png

從時鐘樹可以看到,FWDGT的時鐘來源于IRC32K,這是GD32H757的內部時鐘,典型的頻率值是32KHz。但要注意,這個IRC32K不是直接連到FWDGT計數器的,而是需要經過一個預分頻器,這個分頻器大小通過FWDGT_PSC進行設定。

預分頻寄存器(FWDGT_PSC):

wKgaomY9eV-AOG5kAABcFQ1QEEw925.pngwKgZomY9eWiAWv51AAFYY6ZfqBc364.pngwKgaomY9eY6ASl7jAAFQREG8aQk297.png

如設定PS[2:0]為001b,那么計數器的時鐘頻率就為32K/8 = 4KHz,即每隔250us計數值減1。

7.2.3獨立看門狗(FWDGT)的重裝載

說完時鐘,我們來說下FWDGT的計數器和重裝載。計數器就是按照前面說的,每來一個計數器時鐘,計數器減1,而計數器的初始值,來自于重裝載寄存器。

重裝載寄存器(FWDGT_RLD):

wKgaomY9eYaAVRGMAABaHu93Q8g730.pngwKgZomY9eaCAClk4AAJfPNzGgew320.png

從“描述”中我們可以看出,向FWDGT_CTL寫入0xAAAA(即喂狗,詳見用戶手冊FWDGT_CTL寄存器),重裝載寄存器中的數值就會自動加載到FWDGT的計數器中。

重裝載寄存器(FWDGT_RLD)是一個12位的計數器,這就意味著重裝載最大值為65535,再結合上一節的時鐘分頻,FWDGT設定的最大/最小超時周期見下表:

wKgZomY9ea2AWJemAACCZdb8CSA202.pngwKgZomY9ebKAOeLxAABnxbQ4giQ363.png

注意: 當執行完喂狗reload操作之后,如需要立即進入deepsleep / standby模式時,必須通過軟件設置,在reload命令及deepsleep / standby模式命令中間插入(3個以上)IRC32K時鐘間隔,否則可能導致喂狗不成功。

7.2.4獨立看門狗的使用注意事項

獨立看門狗的時鐘源來自于IRC32K,這個內部時鐘實際上不是非常的準確,所以在設定看門狗重載值和分配器時需要留有一定的余量,防止應用程序由于IRC32K頻率偏差而來不及喂狗,導致不必要的MCU復位。

7.3硬件設計

本實驗我們通過海棠派開發板LED1的狀態來指示MCU復位情況,用LED2來指示喂狗的情況。

7.4代碼解析

在driver_wdgt.c中定義了獨立看門狗的配置函數drive_fwdgt_config和喂狗函數Feed_fwdgt:

C
void drive_fwdgt_config(uint16_t reload_value, uint8_t prescaler_div)
{
/* 開啟內部32K時鐘 */
rcu_osci_on(RCU_IRC32K);
/* 等待時鐘ready */
while(SUCCESS != rcu_osci_stab_wait(RCU_IRC32K)){
}
/*配置看門狗參數*/
fwdgt_config(reload_value,prescaler_div);
/*開啟看門狗*/
fwdgt_enable();
}

void Feed_fwdgt(void)
{
/* 重裝載計數器 */
fwdgt_counter_reload();
}

以下為main函數代碼:

C
int main(void)
{
uint8_t i;
driver_init();//delay函數初始化
bsp_led_group_init();//LED初始化
bsp_led_on(&LED1);//點亮LED0
delay_ms(2000); //延時2s
bsp_led_off(&LED1);//熄滅LED0
drive_fwdgt_config(625,FWDGT_PSC_DIV64);//獨立看門狗配置
/*閃爍LED1 5次,并每閃爍一次進行喂狗*/
for(i = 0;i<5;i++)
{
delay_ms(500);
bsp_led_toggle(&LED2);
Feed_fwdgt();
printf_log("Feed_fwdgt!/r/n")
}
while (1)
{
}
}

本例程main函數首先進行了延時函數初始化,再初始化LED0和LED1,并將LED0點亮2s鐘后熄滅,然后配置獨立看門狗時鐘預分頻為64分頻,重載值為1000,即超時時間為625/(32K/64)= 1.25s,再每500ms翻轉一次LED1,同時進行喂狗,最后進入while(1)循環。

7.5實驗結果

海棠派開發板上電后,LED2燈亮,2s鐘后熄滅,隨后LED3閃爍5次,再經過一段時間后LED2燈滅,LED1復亮,周而復始。

教程GD32 MCU方案商聚沃科技原創發布,了解更多GD32 MCU教程,關注聚沃科技官網

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635356
  • 嵌入式
    +關注

    關注

    5082

    文章

    19126

    瀏覽量

    305250
  • 看門狗
    +關注

    關注

    10

    文章

    562

    瀏覽量

    70810
  • 看門狗喂狗
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1745
收藏 人收藏

    評論

    相關推薦

    GD32開發實戰指南(基礎篇) 第17章 看門狗

    開發環境: MDK:Keil 5.30 開發板GD32F207I-EVAL MCU:GD32F207IK GD32 有兩個
    的頭像 發表于 06-03 16:00 ?1.1w次閱讀
    <b class='flag-5'>GD</b>32<b class='flag-5'>開發</b>實戰指南(基礎篇) 第17章 <b class='flag-5'>看門狗</b>

    GD32H757Z海棠開發板使用手冊】第十三講 SDIO-SD卡讀寫實驗

    通過本實驗主要學習以下內容: ?USB協議基本原理 ?GD32H7xx USBHS的使用 ?虛擬鍵盤的協議原理及使用
    的頭像 發表于 06-06 11:26 ?1920次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第十三講 SDIO-SD卡讀寫<b class='flag-5'>實驗</b>

    YL-51開發板使用手冊

    YL-51開發板使用手冊,YL-51開發板使用手冊YL-51開發板使用手冊YL-51
    發表于 05-10 16:31 ?21次下載

    51開發板使用手冊

    51開發板使用手冊,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-23 15:45 ?11次下載

    第11 獨立看門狗

    這一刻的的獨立看門狗實驗以及使用
    發表于 02-27 16:18 ?1次下載

    GD32】GD32設置看門狗

    芯片:GD32F350 運行在8M目標:啟動芯片看門狗,定時喂狗流程1.初始化看門狗時鐘2.配置看門狗3.定時喂狗1.初始化看門狗時鐘啟動用
    發表于 12-02 15:36 ?16次下載
    【<b class='flag-5'>GD</b>32】<b class='flag-5'>GD</b>32設置<b class='flag-5'>看門狗</b>

    KC705開發板英文使用手冊

    KC705開發板英文使用手冊
    發表于 11-01 10:19 ?5次下載

    iTOP-3399開發板使用手冊大更新

    iTOP-3399開發板使用手冊大更新
    的頭像 發表于 12-10 15:46 ?1370次閱讀
    iTOP-3399<b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>大更新

    GD32H757Z海棠開發板使用手冊】第二 GPIO-按鍵查詢檢測實驗

    2.1實驗內容通過本實驗主要學習以下內容:GPIO輸入功能原理;按鍵查詢輸入檢測原理;2.2實驗原理2.2.1GPIO輸入功能原理GD32H7XX系列MCUGPIO輸入配置結構如下圖所
    的頭像 發表于 04-17 10:42 ?742次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第二<b class='flag-5'>講</b> GPIO-按鍵查詢檢測<b class='flag-5'>實驗</b>

    GD32H757Z海棠開發板使用手冊】第五 PMU-低功耗實驗

    PMU即電源管理單元,其內部結構下圖所示,由該圖可知,GD32H7XX系列MCU具有三個電源域,包括VDD/VDDA電源域、0.9V電源域以及電池備份域,其中,VDD /VDDA域由電源直接供電
    的頭像 發表于 04-20 09:32 ?1035次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第五<b class='flag-5'>講</b> PMU-低功耗<b class='flag-5'>實驗</b>

    GD32F470紫藤開發板使用手冊第七 FWDG-看門狗實驗

    通過本實驗主要學習以下內容: 獨立看門狗的原理 獨立看門狗功能介紹 實現獨立看門狗功能
    的頭像 發表于 05-11 10:13 ?1139次閱讀
    【<b class='flag-5'>GD</b>32F470紫藤<b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】<b class='flag-5'>第七</b><b class='flag-5'>講</b> <b class='flag-5'>FWDG-</b><b class='flag-5'>看門狗</b><b class='flag-5'>實驗</b>

    GD32H757Z海棠開發板使用手冊】第八 ADC-規則組多通道采樣實驗

    通過本實驗主要學習以下內容: ADC的簡介 GD32FH757 ADC工作原理 DMA和DMAMUX的原理 規則組多通道循環采樣
    的頭像 發表于 05-14 09:39 ?636次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第八<b class='flag-5'>講</b> ADC-規則組多通道采樣<b class='flag-5'>實驗</b>

    GD32H757Z海棠開發板使用手冊】第九 USART-printf打印實驗

    通過本實驗主要學習以下內容: ?串口簡介 ?GD32H757串口工作原理 ?使用printf打印信息
    的頭像 發表于 05-15 11:39 ?728次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第九<b class='flag-5'>講</b> USART-printf打印<b class='flag-5'>實驗</b>

    GD32H757Z海棠開發板使用手冊】第十一講 SPI-SPI NOR FLASH讀寫實驗

    通過本實驗主要學習以下內容: ?SPI簡介 ?GD32H7 SPI簡介 ?SPI NOR FLASH——GD25Q128ESIGR簡介 ?使用GD32H7 SPI接口實現對
    的頭像 發表于 06-04 11:42 ?1007次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第十一講 SPI-SPI NOR FLASH讀寫<b class='flag-5'>實驗</b>

    GD32F303紅楓開發板使用手冊】第二十 SPI-SPI NAND FLASH讀寫實驗

    通過本實驗主要學習以下內容: ?SPI通信協議,參考19.2.1東方紅開發板使用手冊 ?GD32F303 SPI操作方式,參考19.2.2東方紅
    的頭像 發表于 06-20 09:50 ?907次閱讀
    【<b class='flag-5'>GD</b>32F303紅楓<b class='flag-5'>派</b><b class='flag-5'>開發板</b><b class='flag-5'>使用手冊</b>】第二十<b class='flag-5'>講</b> SPI-SPI NAND FLASH讀寫<b class='flag-5'>實驗</b>
    主站蜘蛛池模板: 国产乱码免费卡1卡二卡3卡四| aaaaaaa毛片| 午夜视频免费| 久久影视免费体验区午夜啪啪 | 涩涩色中文综合亚洲| 一级做α爰片久久毛片| 毛片不卡一区二区三区| 天天色天天操综合网| 日本aaaaa毛片动漫| 欧美在线视频一区二区三区| 香蕉久久夜色精品国产小说| 色综合欧美| a毛片网站| 91免费视频网| 青青青青久久精品国产h| 新午夜影院| 欧美一区二区三区不卡视频| 欧美日韩国产成人高清视频| 失禁h啪肉尿出来高h健身房 | 在线天堂中文官网| 精品伊人久久香线蕉| 国产精品人人爱一区二区白浆| 在线播放国产一区| 国产高清在线| 一区二区三区视频观看| 欧美午夜性刺激在线观看免费| 国产色妞妞在线视频免费播放| 国产精品莉莉欧美自在线线| 午夜影视啪啪免费体验区入口| 99久久免费精品高清特色大片| 91在线视频观看| 你懂得福利| 97射射| 中文三级视频| 欧美精品福利| 国产精品免费看久久久香蕉| 婷婷激情综合五月天| 国产精品主播在线观看| 国产操女人| 久久青草免费免费91线频观看| 国产福利在线观看一区二区|