当前位置:   article > 正文

第30讲、窗口看门狗-WWDG_wwdg.c解析

wwdg.c解析

一、

1、

2、

3、

当T6:0>W6:0,比较结果=1,之后产生复位信号

当看门口控制寄存器T6为0时,经非变为1,与门输出为1,之后产生复位信号

4、

5、

6、

二、

1、

 

2、

3、

三、

四、现象:开始一灯亮一会就灭了,之后另一灯闪烁亮

1、wwdg.c文件

  1. #include "wwdg.h"
  2. #include "led.h"
  3. //保存WWDG计数器的设置值,默认为最大.
  4. u8 WWDG_CNT=0X7F;
  5. //初始化窗口看门狗
  6. //tr :T[6:0],计数器值
  7. //wr :W[6:0],窗口值
  8. //fprer:分频系数(WDGTB),仅最低2位有效
  9. //Fwwdg=PCLK1/(4096*2^fprer). 一般PCLK1=42Mhz
  10. void WWDG_Init(u8 tr,u8 wr,u32 fprer)
  11. {
  12. NVIC_InitTypeDef NVIC_InitStructure;
  13. RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); //使能窗口看门狗时钟
  14. WWDG_CNT=tr&WWDG_CNT; //初始化WWDG_CNT. 确保初值第7位为0
  15. WWDG_SetPrescaler(fprer); //设置分频值
  16. WWDG_SetWindowValue(wr); //设置窗口值
  17. // WWDG_SetCounter(WWDG_CNT);//设置计数值
  18. WWDG_Enable(WWDG_CNT); //开启看门狗
  19. NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn; //窗口看门狗中断
  20. NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; //抢占优先级为2
  21. NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级为3
  22. NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能窗口看门狗
  23. NVIC_Init(&NVIC_InitStructure);
  24. WWDG_ClearFlag();//清除提前唤醒中断标志位
  25. WWDG_EnableIT();//开启提前唤醒中断
  26. }
  27. //窗口看门狗中断服务程序
  28. void WWDG_IRQHandler(void)
  29. {
  30. WWDG_SetCounter(WWDG_CNT); //重设窗口看门狗值
  31. WWDG_ClearFlag();//清除提前唤醒中断标志位
  32. LED1=!LED1;
  33. }

2、

  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "beep.h"
  6. #include "key.h"
  7. #include "wwdg.h"
  8. int main(void)
  9. {
  10. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  11. delay_init(168); //初始化延时函数
  12. LED_Init(); //初始化LED端口
  13. KEY_Init(); //初始化按键
  14. LED0=0; //点亮LED0
  15. delay_ms(300);
  16. WWDG_Init(0x7F,0X5F,WWDG_Prescaler_8); //计数器值为7f,窗口寄存器为5f,分频数为8
  17. while(1)
  18. {
  19. LED0=1; //熄灭LED灯
  20. }
  21. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/437544
推荐阅读
相关标签
  

闽ICP备14008679号