<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          STM32的看門狗配置

          作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
          看門狗的配置有2部分:看門狗的初始化和喂狗。

          下面看一下STM32是怎么初始化看門狗和喂狗的。

          本文引用地址:http://www.ex-cimer.com/article/201611/322085.htm

          看門狗初始化步驟:

          1.IWDG_PR和IWDG_RLR寄存器具有寫保護(hù)功能。要修改這兩個(gè)寄存器的值,必須先向
          IWDG_KR寄存器中寫入0x5555。

          2.設(shè)置預(yù)分頻因子 (Prescaler divider)PR[2:0] 。

          3.設(shè)置看門狗計(jì)數(shù)器重裝載值。RLR[11:0]。

          4.重新裝載看門狗的計(jì)數(shù)值,只要在鍵寄存器IWDG_KR中寫入0xAAAA。

          5.在鍵寄存器(IWDG_KR)中寫入0xCCCC,開始啟用獨(dú)立看門狗。

          void Wdt_Init(void)
          {
          // Enable write access to IWDG_PR and IWDG_RLR registers
          IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//IWDG->KR =0x5555

          // IWDG counter clock: 40KHz(LSI) / 64 = 0.625 KHz
          IWDG_SetPrescaler(IWDG_Prescaler_256);//IWDG->PR =0x06;


          // Set counter reload value to 1250
          IWDG_SetReload(0xfff);//IWDG->RLR =0xFFF

          Red IWDG counter

          IWDG_ReloadCounter();//IWDG->KR =0xAAAA


          / Enable IWDG (the LSI oscillator will be enabled by hardware)
          IWDG_Enable();//IWDG->KR =0xCCCC


          }

          //喂狗

          void Kick_Dog(void)
          {
          //Reload IWDG counter
          IWDG_ReloadCounter();//IWDG->KR =0xAAAA
          }

          上面這個(gè)看門狗有 /25626214.4 ms。即2s多一點(diǎn)時(shí)間沒有喂狗就復(fù)位。

          LSI不穩(wěn)定,官方手冊有下面這么一個(gè)說法:



          關(guān)鍵詞: STM32看門狗配

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();