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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM學(xué)習(xí)筆記--獨(dú)立看門狗IWDG

          STM學(xué)習(xí)筆記--獨(dú)立看門狗IWDG

          作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          1:主要性能

          (1)時鐘由獨(dú)立的RC振蕩器提供

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

          (2)自由運(yùn)行的遞減計數(shù)器

          (3)看門狗被激活,則在計數(shù)器至0x000時產(chǎn)生復(fù)位

          2:寄存器理解

          (1)鍵寄存器(IWDG_KR)中寫入0XCCCC,開始啟動獨(dú)立看門狗,計數(shù)值由復(fù)位

          (2)0XFFF遞減計數(shù),當(dāng)計數(shù)器到末尾0X000時,產(chǎn)生一個復(fù)位信號。

          (3)鍵寄存器(IWDG_KR)中寫入0XAAAA,IWDG_RLR中的值會重新加入到計數(shù)器。即是清狗。

          IWDG_PR(8bits預(yù)分頻寄存器)和IWDG_RLR(12bits)具有寫保護(hù)功能,想修改這個寄存器,IWDG_KR寄存器寫入0X5555。

          工作原理框圖

          時鐘來源是LSI內(nèi)部RC振蕩40KHZ不穩(wěn)定30~60KHZ,對時鐘的穩(wěn)定性要求較低的場合。

          注意:

          12位IWDG_RLR重裝載數(shù)值0X000-0XFFF,若修改,必須等待IWDG_SR寄存器中的RVU為0。

          3位PR[2:0]必須等待PVU為0時,才能修改IWDG_PR寄存器中的數(shù)值。

          PVU即看門狗預(yù)分頻更新prescaler value update

          RVU即看門狗重裝載值更新reload value update

          寄存器如下:

          程序如下:來自正點(diǎn)原子@ALIENTEK開發(fā)板

          //初始化獨(dú)立看門狗

          //prer:分頻數(shù):0~7(只有低3位有效!)

          //分頻因子=4*2^prer.但最大值只能是256!

          //rlr:重裝載寄存器值:低11位有效.

          //時間計算(大概):Tout=((4*2^prer)*rlr)/40 (ms).

          void IWDG_Init(u8 prer,u16 rlr)

          {

          IWDG->KR=0X5555;//使能對IWDG->PR和IWDG->RLR的寫

          IWDG->PR=prer;//設(shè)置分頻系數(shù)

          IWDG->RLR=rlr;//從加載寄存器IWDG->RLR

          IWDG->KR=0XAAAA;//reload將重裝載值放入計數(shù)器,從而避免從0XFFF開始

          IWDG->KR=0XCCCC;//使能看門狗

          }

          //喂獨(dú)立看門狗

          void IWDG_Feed(void)

          {

          IWDG->KR=0XAAAA;//reload

          }



          關(guān)鍵詞: STM獨(dú)立看門狗IWD

          評論


          技術(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); })();