#include "WWDGT.h"
#include "stdio.h" //使能sprintf(),printf()

void WWDGT_Init(void);
void Check_WWDGT_Reset(void);

//函数功能:配置"窗口看门狗定时器",更新"计数器初始值"的时间t满足,28.5ms<t<38.8ms
void WWDGT_Init(void)
{
    rcu_periph_clock_enable(RCU_WWDGT);//使能RCU_WWDGT外设时钟,enable WWDGT clock

wwdgt_config(127, 80, WWDGT_CFG_PSC_DIV8);
    //设置"窗口看门狗定时器"计数器初始值为127,窗口值为80,预分频器值为8
    //因为:CK_SYS经过AHB和APB1预分频器得到PCLK1,PCLK1最大为54MHz,PCLK1/4096为"窗口看门狗定时器"的预分频器输入时钟
    //所以"窗口看门狗定时器"时钟 = (PCLK1/4096)/8
    //假定PCLK1=54MHz,则"窗口看门狗定时器"时钟 = (54/4096)/8= 1648MHz,即单一脉冲时间为606.8us
    //refresh window is: ~606.8 * (127-80)= 28.5ms < refresh window < ~606.8 * (127-63) =38.8ms.
    //如果想再次设置"窗口看门狗定时器"的计数器初始值,则时间t满足,28.5ms<t<38.8ms

wwdgt_enable();
    //wwdgt_counter_update(127);//喂狗,update WWDGT counte
}

//函数功能:检查"窗口看门狗定时器"是否复位
void Check_WWDGT_Reset(void)
{
    if(RESET != rcu_flag_get(RCU_FLAG_WWDGTRST))
    {//读取"窗口看门狗定时器复位标志"
        rcu_all_reset_flag_clear();//清除CPU的"所有复位标志位"
        printf("\r\nWWDG reset!");
    }
}

#include "gd32f10x.h" //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t,bool
#include "delay.h"
//#include "IWDG.h"
#include "WWDGT.h"
#include "stdio.h"  //使能printf(),sprintf()

#include "LED.h"
#include "USART0.h"

const char CPU_Reset_REG[]="\r\nCPU reset!\r\n";
int main(void)
{

//NVIC_PRIGROUP_PRE4_SUB0:抢占优先级为4bit(取值为0~15),子优先级为0bit(没有响应优先级)
    //NVIC_PRIGROUP_PRE3_SUB1:抢占优先级为3bit(取值为0~7),子优先级为1bit(取值为0~1)
    //NVIC_PRIGROUP_PRE2_SUB2:抢占优先级为2bit(取值为0~3),子优先级为2bit(取值为0~3)
    //NVIC_PRIGROUP_PRE1_SUB3:抢占优先级为1bit(取值为0~1),子优先级为3bit(取值为0~7)
    //NVIC_PRIGROUP_PRE0_SUB4:抢占优先级为0bit(没有抢占优先级),子优先级为3bit(取值为0~15)
    nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);//设置系统中断优先级"抢占优先级为4bit,子优先级为0bit"
  INTX_ENABLE();//开启所有中断
    USART0_Init(115200);

printf("%s",CPU_Reset_REG);//调试串口输出"\r\nCPU reset!\r\n"

LED2_Init();//初始化LED2端口
    LED3_Init();//初始化LED3端口
    LED4_Init();//初始化LED4端口
    LED5_Init();//初始化LED5端口

delay_init();

Check_WWDGT_Reset();//检查"窗口看门狗定时器"是否复位
    WWDGT_Init();//配置"窗口看门狗定时器",更新"计数器初始值"的时间t满足,28.5ms<t<38.8ms
    while(1)
    {
        delay_ms(30);//配置"窗口看门狗定时器",更新"计数器初始值"的时间t满足,28.5ms<t<38.8ms,所以这里需要延时30ms
        wwdgt_counter_update(127);//喂狗,update WWDGT counte

LED2_Toggle();
    }
}

GD32F10x的窗口看门狗定时器相关推荐

  1. c语言看门狗指令pic,PIC单片机的窗口看门狗定时器.PDF

    PIC单片机的窗口看门狗定时器 TB3123 PIC® 单片机的窗口看门狗定时器 作者: Ashutosh Tiwari Microchip Technology Inc. 简介 窗口看门狗定时器(W ...

  2. stm32 定时器_如何计算STM32定时器、独立看门狗和窗口看门狗

    点击上方蓝色字体,关注我们 本博文简要阐述STM32L011微控制器定时器的参数配置(其他型号大同小异,本文侧重讲解配置,至于各类定时器的特点后续再述),STM32定时器种类繁多有通用定时器.基本定时 ...

  3. 如何计算STM32定时器、独立看门狗和窗口看门狗

    目录 1.基本.通用类型定时器 2.独立看门狗定时器 3.窗口看门狗定时器 之前分享了STM32 GPIO的原理.特性.选型和配置.如何计算RTC时钟异步预分频和同步预分频,这次简要阐述STM32L0 ...

  4. stm32 独立看门狗和窗口看门狗区别

    原文地址https://www.cnblogs.com/pertor/p/9483445.html 一.使用调条件 二.特点对比 三.手册介绍 [注]图中的WDGTB为3表示2^3=8,表示8分频,最 ...

  5. 窗口看门狗实验定时器基本原理

    目录 1.  窗口看门狗 1.1  窗口看门狗概述 1.1.1  窗口看门狗工作示意图 1.1.2  窗口看门狗工作过程总结 1.1.3  窗口看门狗超时时间 1.1.4  为什么要窗口看门狗 ? 1 ...

  6. 看门狗(独立看门狗)与窗口看门狗的区别!

    看门狗(独立看门狗)与窗口看门狗的区别 在cortex-M系列芯片上有两个看门狗:看门狗(独立看门狗)和窗口看门狗. 1.相同点 都是为了保证CPU程序跑飞 2.独立看门狗 根据内部看门狗时钟频率,装 ...

  7. 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用

    外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用 原创 2017-09-13 胡恩伟 汽车电子expert成长之路 内容提要 引言 1. SWT的功能概述 2. SWT ...

  8. 独立看门狗与窗口看门狗

    定义 看门狗的本质是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称"喂狗",如果没有按时"喂狗",说明MCU可能处于非正常状态,这时看门狗就向MCU ...

  9. 窗口看门狗和独立看门狗区别

    最近在cortex-M系列芯片上进行看门狗编程的时候发现了关于看门狗有两个:(独立)看门狗和窗口看门狗.然后就查找了下网络资源,对这两个看门狗做了区分. 1.相同点 都是为了防止CPU跑飞 2.独立看 ...

  10. 窗口看门狗与独立看门狗区别

    独立看门狗与窗口看门狗的区别 1.相同点 都是为了保证CPU程序跑飞 2.独立看门狗 根据内部看门狗时钟频率,装载寄存器定一个时间值,比如是1000,那么独立看门狗就会按照时钟频率,从1000开始向下 ...

最新文章

  1. 30个在线学习设计与开发的站点
  2. textarea 固定大小,滚动条,限制拖动,文字对齐
  3. 遇到虚拟系统内存问题怎么办?Hypervisor帮你除bug
  4. 人工智能岗位替代----办公文员
  5. js页面加载前执行_做一名合格的前端开发工程师:Javascript加载执行问题探索
  6. 2019计算机科学与技术调剂信息,福建师范大学计算机科学与技术2019考研调剂信息...
  7. cad通过钢筋大样生成钢筋明细表插件_各位做室内外设计的朋友,告别CAD单线画图,用天正建筑更方便...
  8. POJ 1080 Human Gene Functions(DP:LCS)
  9. SpringSecurity系列(三) Spring Security 表单登录
  10. 蓝桥杯 k倍区间(前缀和)
  11. 让你的软件支持繁体中文
  12. python烧录单片机_mac实现烧写51单片机
  13. Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/
  14. web前端期末大作业 html+css+javascript防天天生鲜官网网页设计实例 企业网站制作
  15. XGBoost资料( 多届竞赛冠军获得者 周耀 整理)
  16. succi - 接小球游戏
  17. 实现省市县的两种方式
  18. [DP]hdu5234
  19. RMAN维护:RMAN中的交叉校验crosscheck
  20. Nginx安装配置及使用方法

热门文章

  1. 三维全景虚拟现实:现在的VR全景行业怎么样?|时空克隆 三维视频融合 投影融合 点卯 魔镜系列
  2. 机械硬盘显示位置不可用无法访问介质受写入保护
  3. 【redis源码学习】持久化机制(2):AOF
  4. BuBu笔记——Mybatis深入(秃头BUBu的超详细备注,一定要看哦)
  5. PHP实现时间轴函数(个性化时间)
  6. RAW数据格式的图片转换--常用于相机开发和图片旋转
  7. 红警代码开源了 来瞅瞅源码 文内送Win10可联机的红警2标准版游戏
  8. Itext导出pdf教程
  9. 大秦帝国之崛起的几点启发
  10. layui 模板引擎-laytpl(局部渲染)