專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

STM32窗口看門狗程序

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月17日   【字體:

 頭文件及完整例程下載:http://www.torrancerestoration.com/f/stm32標(biāo)準(zhǔn)例程庫函數(shù).rar 
程序分析:

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "wdg.h"
//STM32開發(fā)板實(shí)驗(yàn)7
//窗口看門狗實(shí)驗(yàn)  
 int main(void)
 {
delay_init();     //延時(shí)函數(shù)初始化  
NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
// uart_init(9600); //串口初始化為9600
  LED_Init();
// KEY_Init();          //按鍵初始化  
LED0=0;
delay_ms(300);  
WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8);//計(jì)數(shù)器值為7f,窗口寄存器為5f,分頻數(shù)為8   
  while(1)
{
LED0=1;     
}   
}
窗口看門狗的初始化
void WWDG_Init(u8 tr,u8 wr,u32 fprer)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);  //   WWDG時(shí)鐘使能
 
WWDG_CNT=tr&WWDG_CNT;   //初始化WWDG_CNT.   
WWDG_SetPrescaler(fprer);////設(shè)置IWDG預(yù)分頻值
 
WWDG_SetWindowValue(wr);//設(shè)置窗口值
 
WWDG_Enable(WWDG_CNT); //使能看門狗 , 設(shè)置 counter .                  
 
WWDG_ClearFlag();//清除提前喚醒中斷標(biāo)志位 
 
WWDG_NVIC_Init();//初始化窗口看門狗 NVIC
 
WWDG_EnableIT(); //開啟窗口看門狗中斷
}  

看門狗的中斷函數(shù)
void WWDG_IRQHandler(void)
{
 
WWDG_SetCounter(WWDG_CNT);  //當(dāng)禁掉此句后,窗口看門狗將產(chǎn)生復(fù)位
 
WWDG_ClearFlag();  //清除提前喚醒中斷標(biāo)志位
 
LED1=!LED1; //LED狀態(tài)翻轉(zhuǎn)


看門狗的喂狗函數(shù)
WWDG_SetCounter(WWDG_CNT);  //當(dāng)禁掉此句后,窗口看門狗將產(chǎn)生復(fù)位
 
關(guān)閉窗口

相關(guān)文章