新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM學習筆記--窗口看門狗WWDG

        STM學習筆記--窗口看門狗WWDG

        作者: 時間:2016-09-12 來源:網絡 收藏

          時鐘來源:APB1àPCLK1最大72MHz

        本文引用地址:http://www.104case.com/article/201609/296865.htm

          1:窗口的特性:

          (1)可編程的自由運行遞減計數器

          (2)復位條件:a:當遞減計數器,計數值小于0X40時,產生復位。

          b:當遞減計數器在窗口外(計數器>WWDG_CFR)被重裝載,則產生復位

          (3)啟動,且允許中斷,遞減計數器等于0X40,產生早期喚醒中斷(EWI),在中斷中重轉載計數器,避免WWDG復位。

          工作原理:

          

         

          由框圖可以看出:

          APB1的時鐘經過(預分頻器)WDGTB,CNT為7位【T6àT0】遞減計數器計數,控制寄存器(WWDG_CR)裝載入CNT。

          當計數器T6位由1à0時,立即產生復位信號。注意WWDG_CR的值范圍為0XFF-0XC0之間。

          看門狗配置寄存器WWDG_CFR設置窗口的高度,當T6:0>W6:0時,寫入WWDG_CR則立即產生復位信號;當T6:0

          

         

          寄存器:

          WWDG_CR

          

         

          WWDG_SR:包含提前喚醒中斷,即減到0X40時

          

         

          WWDG_CFR:窗口配置寄存器,EWI只能由硬件復位后清除,當到0X40時,立即產生中斷。

          

         

          //來自正點原子@ALIENTEK程序

          //保存WWDG計數器的設置值,默認為最大.

          u8 WWDG_CNT=0x7f;

          //初始化窗口看門狗

          //tr :T[6:0],用于存儲計數器的值

          //wr :W[6:0],用于存儲窗口值

          //fprer:窗口看門狗的實際設置

          //低2位有效.Fwwdg=PCLK1/4096/2^fprer.

          void WWDG_Init(u8 tr,u8 wr,u8 fprer)

          {

          RCC->APB1ENR|=1<<11; //使能wwdg時鐘

          WWDG_CNT=tr&WWDG_CNT; //初始化WWDG_CNT.

          WWDG->CFR|=fprer<<7; //PCLK1/4096再除2^fprer

          WWDG->CFR|=1<<9; //使能提前喚醒中斷

          WWDG->CFR&=0XFF80;

          WWDG->CFR|=wr; //設定窗口值

          WWDG->CR|=WWDG_CNT|(1<<7); //開啟看門狗,設置7位計數器

          MY_NVIC_Init(2,3,WWDG_IRQChannel,2);//搶占2,子優先級3,組2

          }

          //重設置WWDG計數器的值

          void WWDG_Set_Counter(u8 cnt)

          {

          WWDG->CR|=(cnt&0x7F);//重設置7位計數器

          }

          //窗口看門狗中斷服務程序

          void WWDG_IRQHandler(void)

          {

          u8 wr,tr;

          wr=WWDG->CFR&0X7F;

          tr=WWDG->CR&0X7F;

          if(tr

          WWDG->SR=0X00;//清除提前喚醒中斷標志位

          LED1=!LED1;

          }



        關鍵詞: STM 看門狗

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临海市| 额尔古纳市| 桃园市| 宣汉县| 砀山县| 久治县| 法库县| 洛宁县| 开阳县| 伊春市| 肇源县| 孙吴县| 义乌市| 高邮市| 河津市| 合肥市| 和顺县| 梅河口市| 峨眉山市| 苍溪县| 咸宁市| 合肥市| 阿拉善盟| 台州市| 达日县| 沈丘县| 丽水市| 延川县| 南丰县| 陇川县| 嵊泗县| 安康市| 密山市| 静宁县| 厦门市| 新河县| 苍南县| 平远县| 海淀区| 凤台县| 永定县|