打印
[应用相关]

STM32窗口看门狗程序

[复制链接]
104|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duo点|  楼主 | 2023-10-12 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
头文件及完整例程下载:http://www.51hei.com/f/stm32标准例程库函数.rar
程序分析:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "wdg.h"
//STM32开发板实验7
//窗口看门狗实验  
       
int main(void)
{               
        delay_init();                     //延时函数初始化          
        NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
//        uart_init(9600);         //串口初始化为9600
        LED_Init();
//        KEY_Init();          //按键初始化         
        LED0=0;
        delay_ms(300);          
        WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8);//计数器值为7f,窗口寄存器为5f,分频数为8          
        while(1)
        {
                LED0=1;                                    
        }   
}
窗口看门狗的初始化
void WWDG_Init(u8 tr,u8 wr,u32 fprer)
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);  //   WWDG时钟使能

        WWDG_CNT=tr&WWDG_CNT;   //初始化WWDG_CNT.   
        WWDG_SetPrescaler(fprer);////设置IWDG预分频值

        WWDG_SetWindowValue(wr);//设置窗口值

        WWDG_Enable(WWDG_CNT);         //使能看门狗 ,        设置 counter .                  

        WWDG_ClearFlag();//清除提前唤醒中断标志位

        WWDG_NVIC_Init();//初始化窗口看门狗 NVIC

        WWDG_EnableIT(); //开启窗口看门狗中断
}  

看门狗的中断函数
void WWDG_IRQHandler(void)
        {

        WWDG_SetCounter(WWDG_CNT);          //当禁掉此句后,窗口看门狗将产生复位

        WWDG_ClearFlag();          //清除提前唤醒中断标志位

        LED1=!LED1;                 //LED状态翻转
        }

看门狗的喂狗函数
WWDG_SetCounter(WWDG_CNT);          //当禁掉此句后,窗口看门狗将产生复位


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

1457

帖子

1

粉丝