欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4606|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

[零基礎(chǔ)學(xué)習(xí)STM32]第六講:IWDG看門狗實(shí)驗(yàn)—復(fù)位ARM

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:278743 發(fā)表于 2018-3-9 10:15 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
一、概述
1、看門狗簡介
     在由單片機(jī)構(gòu)成的微型計算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會受到來自外界磁場的干擾,造成各種寄存器和內(nèi)存的數(shù)據(jù)混亂,會導(dǎo)致程序指針錯誤,不在程序區(qū),取出錯誤的程序指令等,都會陷入死循環(huán)。程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無法繼續(xù)正常工作,會造成整個系統(tǒng)陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果。看門狗就是定期的查看芯片內(nèi)部的情況,一旦發(fā)生錯誤就向芯片發(fā)出重啟的電路。看門狗命令在程序的中斷中擁有最高的優(yōu)先級。
2、IWDG簡介
     此器件具有兩個嵌入式看門狗外設(shè),具有安全性高、定時準(zhǔn)確及使用靈活的優(yōu)點(diǎn)。兩個看門狗外設(shè)(獨(dú)立和窗口)均可用于檢測并解決由軟件錯誤導(dǎo)致的故障;當(dāng)計數(shù)器達(dá)到給定的超時值時,觸發(fā)一個中斷(僅適用于窗口型看門狗)或產(chǎn)生系統(tǒng)復(fù)位。
     獨(dú)立看門狗(IWDG)由其專用低速時鐘(LSI)驅(qū)動,因此即便在主時鐘發(fā)生故障時仍然保持工作狀態(tài)。窗口看門狗(WWDG)時鐘由APB1時鐘經(jīng)預(yù)分頻后提供,通過可配置的時間窗口來檢測應(yīng)用程序非正常的過遲或過早的操作。IWDG最適合應(yīng)用于那些需要看門狗作為一個在主程序之外,能夠安全獨(dú)立工作,并且對時間精度要求較低的場合。WWDG最適合那些要求看門狗在精度計時窗口起作用的應(yīng)用程序。
3、IWDG主要特性
  • 自由運(yùn)行遞減計數(shù)器。
  • 時鐘由獨(dú)立RC振蕩器提供(可在待機(jī)和停止模式下運(yùn)行)。
  • 當(dāng)遞減計數(shù)器值達(dá)到0x000時產(chǎn)生復(fù)位(如果看門狗已激活)。

           圖6_0獨(dú)立看門狗框圖

   圖6_1  32kHz(LSI)頻率條件下IWDG超時周期的最小值/最大值框圖
二、硬件電路

                  圖6_2引腳分配圖

                圖6_3電路原理圖
    在iCore3雙核心開發(fā)板中,采用一個獨(dú)立的按鍵與STM32F407PH15相連,限流電阻為1K
三、實(shí)驗(yàn)原理
     STM32內(nèi)部包含獨(dú)立看門狗,通過看門狗可以監(jiān)控程序運(yùn)行,程序運(yùn)行錯誤時,未在規(guī)定時間喂狗,自動復(fù)位ARM。本實(shí)驗(yàn)通過按下,停止喂狗,制造程序運(yùn)行錯誤,從而產(chǎn)生復(fù)位。
四、源代碼  
    1、主函數(shù)
  1. /*
  2. * Name                : main
  3. * Description         : ---
  4. * Author              : ysloveivy.
  5. *
  6. * History
  7. * --------------------
  8. * Rev                 : 0.00
  9. * Date                : 11/21/2015
  10. *
  11. * create.
  12. * --------------------
  13. */
  14. int main(void)
  15. {
  16.         int i;
  17.         for(i = 0;i < 10000000;i++);
  18.         led.initialize();
  19.         key.initialize();
  20.         iwdg.initialize();
  21.         while(1){
  22. while(!KEY_INPUT);                          //按鍵按下進(jìn)入循環(huán),不再喂狗,1秒后燈熄滅
  23.                 iwdg.feed_dog();
  24.                 for(i = 0;i < 5000000;i++);
  25.                 LED_RED_ON;
  26.                 LED_GREEN_OFF;
  27.                 LED_BLUE_OFF;
  28.                 for(i = 0;i < 5000000;i++);
  29.                 LED_RED_OFF;
  30.                 LED_GREEN_ON;
  31.                 LED_BLUE_OFF;
  32.                 for(i = 0;i < 5000000;i++);
  33.                 LED_RED_OFF;
  34.                 LED_GREEN_OFF;
  35.                 LED_BLUE_ON;
  36.         }
  37. }           
復(fù)制代碼
2、初始化函數(shù)和喂狗函數(shù)
  1. /*
  2. * Name               : initialize
  3. * Description        : ---
  4. * Author             : ysloveivy.
  5. *
  6. * History
  7. * -------------------
  8. * Rev                : 0.00
  9. * Date               : 11/21/2015
  10. *
  11. * create.
  12. * -------------------
  13. */
  14. static int initialize(void)
  15. {
  16.         //1s喂狗
  17.         IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);         //取消寄存器的寫保護(hù)
  18.         IWDG_SetPrescaler(4);                                 //設(shè)置獨(dú)立看門狗的預(yù)分頻系數(shù)
  19.         IWDG_SetReload(625);                                  //設(shè)置獨(dú)立看門狗的重裝載值
  20. IWDG_ReloadCounter();                                 //重裝載計數(shù)器
  21.         IWDG_Enable();                                        //使能獨(dú)立看門狗

  22.         return 0;
  23. }
  24. /*
  25. * Name               : feed_dog
  26. * Description        : ---
  27. * Author             : ysloveivy.
  28. *
  29. * History
  30. * -------------------
  31. * Rev                : 0.00
  32. * Date               : 11/21/2015
  33. *
  34. * create.
  35. * -------------------
  36. */
  37. static void feed_dog(void)
  38. {
  39.         IWDG_ReloadCounter();
  40. }
復(fù)制代碼
五、實(shí)驗(yàn)現(xiàn)象
     iCore3雙核心板三色LED交替閃爍i,當(dāng)按鍵按下超過1s,看門狗復(fù)位ARM.。
六、代碼包下載
     網(wǎng)盤:http://pan.baidu.com/s/1c0frjHm

iCore3_6_IWDG.rar

909.45 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表