STM32独立看门狗实验学习笔记

1.为什么要看门狗
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗"(watchdog)。

2.独立看门狗需要用的几个寄存器

1)键值寄存器 IWDG_KR

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

 

2)分频寄存器(IWDG_PR)

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

3)重装载寄存器

该寄存器用来保存重装载到计数
器中的值。该寄存器也是一个 32 位寄存器,但是只有低 12 位是有效的,该寄存器的各位描述
如图所示:

下面通过一个 LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗

3.硬件设计

本实验用到的硬件资源有:
1) 指示灯 DS0
2) KEY 按键
3) 独立看门狗

喂狗采用板上的 KEY1 键来操作

指示当前状态通过 DS0 来显示

4.软件设计

iwdg.c 里面的代码如下:

 设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间(也就是看门狗溢
出时间),该时间的计算方式为:
Tout=((4×2^prer) ×rlr) /40

 main.c里面的代码如下

5.下载验证
在编译成功之后,我们就可以下载代码到 MiniSTM32 开发板上,实际验证一下,我们的程
序是否正确。下载代码后,可以看到 DS0 不停的闪烁,证明程序在不停的复位,否则只会 DS0
常亮。这时我们试试不停的按 KEY1 按键,可以看到 DS0 就常亮了,不会再闪烁。说明我们
的实验是成功的。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值