GD32F10x看门狗

  • 两个看门狗设备(独立看门狗IWDG和窗口看门狗WWDG)可用来检测和解决由软件错误引起的故障;

    当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

一、独立看门狗IWDG

  • 特性:

    自由运行的递减计数器;

    时钟由独立的RC振荡器提供(可在停止和待机模式下工作);

    看门狗被激活后,则在计数器计数至0x000时产生复位。

二、窗口看门狗

窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。

三、比较

相同点:

目标都是为了防止MCU进入死循环

代码执行超时(或者外部触发)导致没法喂狗就会产生复位

喂狗的具体时间可以设定。

不同点:

1、计数所用的时钟源不同,独立看门狗由内部40KHz低速时钟驱动,窗口看门狗使用PCLK1的时钟;

2、窗口看门狗在使用之前需要先使能时钟,而独立看门狗不需要使能时钟操作;

3、独立看门狗超时直接复位,没有中断;窗口看门狗有中断,超时可以在中断做复位前的函数操作或重新喂狗;

4、独立看门狗一般用于避免程序跑飞或死循环;窗口看门狗用于避免程序不按预定逻辑执行;

5、计数方式不同,独立看门狗是12位递减的,而窗口看门狗的寄存器低8位有效,是6位递减的;

6、超时复位时间范围不同,独立看门狗计数器值(tr)<IWDG重装载值时,进行喂狗;窗口看门狗的计数器值(tr)在0x40和窗口值(wr)之间时进行喂狗。

四、看门狗配置

独立看门狗初始化

/**
*@brief: 初始化独立看门狗
*@param reloadValue:重装载值
* prescaler: 时钟分频值
*@retval NONE
*/
void Drv_FwdgInit(uint16_t reloadValue, uint8_t prescaler)
{
// 开启时钟源(IRC40K)以供看门狗使用
rcu_osci_on(RCU_IRC40K);
while(SUCCESS != rcu_osci_stab_wait(RCU_IRC40K)); // 等待IRC40k稳定
fwdgt_write_enable();
fwdgt_config(reloadValue, prescaler);
fwdgt_write_disable();
fwdgt_enable(); // 使能看门狗
}

喂狗

void Drv_FwdgReload(void)
{
fwdgt_write_enable();
fwdgt_counter_reload();
}

GD32F103C8T6看门狗的更多相关文章

  1. STM32之看门狗(独立与窗口)

    广大的互联网网友们,大家早上中午晚上好,我是某某某..对于狗..看过<忠犬八公>的我.无不深深的被狗的义气与灵气所震撼..我也觉得在所有mcu中用看门狗来形容让系统复位的功能是很恰当的.也 ...

  2. zigbee学习之路(十一):看门狗

    一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU ...

  3. S3C2416 看门狗

    原理:看门狗自己有个硬件计数器,看门狗开启后,计数器就开始计数,当计数为0时触发,触发事件有两个:系统复位和中断,可设置屏蔽. 在计数器计数到0之前,程序可以重新设置计数器中的数值,称之喟狗.计数器的 ...

  4. STM32之独立看门狗与窗口看门狗总结

    一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...

  5. [ZigBee] 12、ZigBee之看门狗定时器——饿了就咬人的GOOD DOG

    引言:硬件中的看门狗,不是门卫的意思,而是一只很凶的狗!如果你不按时喂它,它就会让系统重启!这反而是我们想要的功能~ 1.看门狗概述 看门狗定时器(WDT,Watch Dog Timer)是单片机的一 ...

  6. 5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

    本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...

  7. 给NIOS II CPU增加看门狗定时器并使用

    给NIOS II CPU增加看门狗定时器并使用   配置看门狗定时器: 设置计时溢出时间为1秒 计数器位宽为32位 勾选No Start/Stop control bits 勾选Fixed perio ...

  8. Cubieboard2裸机开发之(五)看门狗操作

    前言 说到看门狗,应该不会陌生,看门狗说白了就是一个定时器,但是它有一个非常重要的功能就是复位系统.在A20里,看门狗的操作非常简单,只有两个寄存器,不需要操作时钟相关的东西,系统起来后可以直接使用, ...

  9. CC2540开发板学习笔记(八)—— 看门狗

    一.功能: 防止程序跑飞,使得系统重新进入工作状态,即一种复位操作吧. 但需要不停地喂狗= =(就是不断的执行某种操作),假如说你的程序跑到了不知道哪里去的错误时,即不会实现喂狗,就会发生复位,程序就 ...

  10. linux设备驱动归纳总结(十一):写个简单的看门狗驱动【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-112879.html linux设备驱动归纳总结(十一):写个简单的看门狗驱动 xxxxxxxxxxx ...

随机推荐

  1. 使用expected_conditions的url_changes方法判断是否登录成功

    使用expected_conditions的url_changes方法判断是否跳转页面登录成功 from selenium import webdriver from selenium.webdriv ...

  2. IPC-7711/7721D-中文版 CN 2024 电子组件的返工、修改和维修标准

    IPC-7711D-7721D-中文版 CN 2024 电子组件的返工.修改和维修标准 链接:https://pan.baidu.com/s/1r5dm9vsj4-Oj2Jw0HgeTHw?pwd=1 ...

  3. golang之JSON处理

    在强类型语言中,JSON 通常很难处理 -- JSON 类型有字符串.数字.字典和数组.如果你使用的语言是 javascript.python.ruby 或 PHP,那么 JSON 有一个很大的好处就 ...

  4. 秒懂Redis

    一.redis简介 Redis 是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库.缓存.消息中间件等场景,是一种NoSQL(not-only sql,非关系型数据库)的数据库 二.Re ...

  5. windows 上部署 kafka 做测试

    1.下载 需要下载 zookeeper 和kafka 我下载的版本是 2.部署 2.1 部署 zookeeper 2.1.1 新建配置文件 zoo.cfg 内容为 tickTime = 2000 da ...

  6. ZCMU-1101

    这个题不怎么难,就是当时没有理解到字典序的意思:我一直以为是自己元素间的比较,后再同学帮助下明白这里是与其他比,这样就很简单了.就是要求当前那个最小就可以了. 对这道题我有点吐槽明明自己都说了最后一组 ...

  7. AO SDK安装问题

    ao sdk for .net安装时,需要进行验证.net框架,没装vs的时候会提示 arcobjects SDK for the Microsoft.NT Framework requires a ...

  8. 【NAS】绿联NAS+alist+lsky+natfrp 实现图床服务

    alist 安装与配置 值得一提的就是,映射的data是配置相关的,让绿联直接默认路径就行,不需要手动设置 但是文件保存位置的映射的话,为了方便,可以单独映射到一个方便访问的文件夹,(但是要注意下权限 ...

  9. Uninstall or delete MariaDB completely for re-installation

    I am new to this forum so pse forgive me if I am asking a question which already has been answered. ...

  10. Netty 那些事儿 ——— 关于 “Netty 发送大数据包时 触发写空闲超时” 的一些思考

    作者:tomas家的小拨浪鼓链接:https://www.jianshu.com/p/8fe70d313d78来源:简书 本文是笔者和朋友(笔名:oojeek)一起讨论该问题的一个记录.文章以讨论过程 ...