首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

STM32学习笔记---WWDG窗口看门狗实验

2020-12-07 来源:画鸵萌宠网
STM32学习笔记---WWDG窗⼝看门狗实验

继做了SYSTICK实验后,继续进⾏第8个实验-WWDG窗⼝看门狗实验,本实验通过设置窗⼝看门狗WWDG间断时间来中断来定期的检查是否出错,在WWDG中断函数中加⼊了流⽔灯⽤来测试是否运⾏了看门狗程序中断,⽤PB5-LED1通过窗⼝看门狗间断时间来闪烁,编程⼯程⼤致和USART实验过程差不多,先是开启系统时钟,然后GPIO端⼝时钟,然后复⽤功能时钟AFIO,然后各个模块⽤的的时钟,,呵呵,之后进⼊各个模块初始化,设置,编写⼦程序,中断的话,要在中断函数中填写某模块的中断触发处理函数,重要的是在CONFG.H函数中开启模块的声明,差不多是这样的了。

以下为WWDG函数主要部分:

//WWDG窗⼝看门狗设置初始化void WWDG_Config(void){

//软件看门狗初始化

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); WWDG_SetPrescaler(WWDG_Prescaler_8); //时钟8分频4ms // (PCLK1/4096)/8= 244 Hz (~4 ms)

WWDG_SetWindowValue(65); //计数器数值

WWDG_Enable(127); //启动计数器,设置喂狗时间 // WWDG timeout = ~4 ms * 64 = 262 ms WWDG_ClearFlag(); //清除标志位 WWDG_EnableIT(); //启动中断}

*****************************************************void WWDG_IRQHandler(void)

{

WWDG_SetCounter(0x7F); //更新计数值 WWDG_ClearFlag(); //清除标志位 switch(WWDGFLAG) {

case 0:

GPIO_SetBits(GPIOB, GPIO_Pin_5); break; case 1:

GPIO_ResetBits(GPIOB, GPIO_Pin_5); break; default: break; }

WWDGFLAG=!WWDGFLAG;}

以下为WWDG函数结果部分:

因篇幅问题不能全部显示,请点此查看更多更全内容