造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。

STM32内部自带了两个看门狗,独立看门狗(IWDG)窗口看门狗(WWDG),这一节我们看一下独立看门狗的工作原理相关寄存器操作。

1. 独立看门狗(IWDG)

STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即主时钟发生故障,它也仍然有效,这里我们需要注意独立看门狗的时钟不是准确的40Khz,二是在30~60Khz之间变化的一个时钟,只是我们估算以40Khz来计算,看门狗对时间要求不是很青雀,时钟有点偏差还是可以接受的。

独立看门狗相关的几个寄存器

1.1. 键值寄存器(IWDG_KR)

寄存器各位描述如下:

独立看门狗工作原理:在键值寄存器(IWDG_KR)中写入0XCCCC,开始启用独立看门狗,此时计数器开始从其复位值OXFFF递减计数,当计数器计数到末尾0X000的时候,会产生一个复位信号(IWDG_RESET),无论何时,只要寄存器IWDG_KR中被写入0XAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。

预分频寄存器(IWDG_PR)和重载寄存器(IWDG_RLR)的写保护  :IWDG_PR和IWDG_RLR寄存器具有写保护功能,要想修改这两个寄存器的值,首先要向IWDG_KR中写入0X5555。以不同的值写入这个寄存器或者重装载(写入0XAAAA)都会重新启动写保护。

1.2. 预分频寄存器(IWDG_PR)

该寄存器是用来设置看门狗的时钟分频系数,最低为4,最高位256,虽然是32位寄存器,我们只使用了最低3位,其他保留,预分频寄存器各位定义如下:

1.3. 计数重装载寄存器(IWDG_RLR)

该寄存器保存重装载计数器中的值,32位寄存器,我们只使用了低12位有效,寄存器描述如下:

2. 独立看门狗启动过程

这样,只要我们对以上三个寄存器进行相应设置,我们就可以启动STM32独立看门狗了,启动过程如下:

2.1. 1、向IWDG_KR中吸入0X5555

通过这一步我们取消了IWDG_PR和IWDG_RLR的写保护,下一步我们设置他们初值。

设置IWDG_PR和IWDG_RLR的初值。

我们计算一下看门狗的喂狗时间(看门狗溢出时间)计算公式

Tout=((4*2^prer)*rlr)/40

其中Tout就是看门狗溢出时间(单位ms),prer是看门狗时钟预分频值(IWDG_PR值),范围为0~7,rlr位看门狗重载值(IWDG_RLR)。比如我们设置prer为4,rlr的值为625,我们就可以计算得到Tout=64*625/40=1000ms,这样,看门狗的溢出时间就是1S,只要在这一秒钟内,有一次吸入0XAAAA到IWDG_KR,就不会导致看门狗复位(写入多次也是可以的)(由于看门狗的时钟不是准确40Khz,所以喂狗不要太晚,以免发生看门狗复位)。

2.2. 2、向IWDG_KR中写入0XAAAA

通过这句可以将重载寄存器(IWDG_RLR)中的计数初值载入到看门狗计数器中(也可以时钟该命令喂狗)。

2.3. 3、向IWDG_KR中写入0XCCCC

通过这句我们就启动了STM32的看门狗了,使能了看门狗,在程序里面我们就必须间隔一定的时间就喂狗,否则导致程序复位,利用这一点,我们通过一个LED来指示是否复位,验证独立看门狗。

STM32中看门狗核心在芯片内部,不需要外部电路,这里我们使用到了外部电路中的2个IO口,一个用来输入喂狗信号,一个用来指示程序是否复位,喂狗使用WK_UP按键,程序重启指示使用DS0。

STM32独立看门狗(IWDG)的更多相关文章

  1. stm32 独立看门狗 IWDG

    独立看门狗IWDG 独立看门狗简单理解就是一个12位递减计数器,当计数器从某一个值递减到0时,系统就会产生一次复位 独立看门狗由专用低速时钟LSI驱动,其频率一般在30-60KHz之间,通常选择40K ...

  2. stm32 独立看门狗学习

    STM32F10xxx内置两个看门狗,提供了更高的安全性.时间的精确性和使用的灵活性.两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障. 独立看门狗(IWDG)由专用的低速 ...

  3. (stm32f103学习总结)—独立看门狗(IWDG)

    一.IWDG介绍 1.1 IWDG简介 STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另 一个是窗口看门狗WWDG.两个看门狗外设(独立和窗口)均可用于检测 并解决由软件错误导致 ...

  4. STM32之独立看门狗(IWDG)与窗口看门狗(WWDG)总结

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

  5. 【转】STM32 独立看门狗简介

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

  6. stm32独立看门狗

    转载:http://blog.sina.com.cn/s/blog_7f1dc53b01010mqa.html 实验现象: 开始LED1亮,LED2熄灭,若不隔时间按KEY1则发现LED2因独立看门狗 ...

  7. stm32独立看门狗实验

    //ALIENTEK Mini STM32开发板V1.9范例代码5//独立看门狗实验//正点原子@ALIENTEK//技术论坛:www.openedv.com STM32F103RBT6属于中容量版本 ...

  8. 独立看门狗 IWDG

    一,独立看门狗 二,独立看门狗的时钟源 独立看门狗拥有自己的时钟源,不依赖PLL时钟输出的分频信号,能够独立运行,这样子的好处就是PLL假如受到干扰, 导致运行异常,独立的看门狗还能正常地进行工作,如 ...

  9. STM8L独立看门狗IWDG

    简单扼要 void IWDG_Init(void)//初始化 { IWDG->KR = 0xcc;//启动IWDG IWDG->KR = 0x55;//解除PR及RLR的写保护 IWDG- ...

随机推荐

  1. Linux 用户和用户组管理(useradd userdel groupadd groupdel)

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. Linux系统用户账户的 ...

  2. Unlink学习总结

    Unlink 本文参考了CTF-wiki 和glibc 源码 原理: 我们在利用 unlink 所造成的漏洞时,其实就是借助 unlink 操作来达成修改指针的效果. 我们先来简单回顾一下 unlin ...

  3. 华为应用市场AppGallery Connect正式推出全新LOGO

    华为应用市场AppGallery Connect(简称AGC)正式推出全新Logo,新Logo的设计灵感源于编码中的符号<>,两个括号紧密联结成一个正方形,寓意华为应用市场AGC与开发者深 ...

  4. Team Queue UVA - 540

      Queues and Priority Queues are data structures which are known to most computer scientists. The Te ...

  5. HUAWEI防火墙双出口据链路带宽负载分担

    组网图形 组网需求 通过配置根据链路带宽负载分担,使流量按照带宽的比例分担到各链路上,保证带宽资源得到充分利用. 如图1所示,企业分别从ISP1和ISP2租用了一条链路,ISP1链路的带宽为100M, ...

  6. Git使用指导

    Git使用指导 目录结构: 一.版本控制 二.Git的历史 三.Git环境配置 四.GIt项目构建 五.Git基本理论 六.GIt文件操作 七.使用码云/GitHub 八.IDEA中继承Git 九.G ...

  7. 1.1.08- Python变量的关联,绑定,引用

    Python中关联.绑定,引用的含义: 在Python中,变量没有类型 关联/绑定/引用都是指变量和一个对象的关联关系. 在交互模式下查看变量的绑定关系: >>>help(" ...

  8. dedecms arclist分页

    https://blog.csdn.net/qq_41104911/article/details/81510589

  9. 一份释放root文件的脚本文件

    #!/system/bin/sh MYDIR=$3 ARGS=$4 SU=$MYDIR/au SUPOLICY=$MYDIR/supolicy BUSYBOX=$MYDIR/busybox TOOLB ...

  10. Python小游戏 -- 猜单词

    Python初学者小游戏:猜单词 游戏逻辑:就像我们曾经英语学习机上的小游戏一样,电脑会从事先预置的词库中抽取单词,然后给出单词的字母数量,给定猜解次数,然后让玩家进行猜测,并给出每次猜测的正确字母与 ...