继续更新学习STM32的历程,今天学习看门狗。

在单片机构成的微型计算机系统中,单片机的工作时常收到外界电磁场的干扰,导致程序跑飞,陷入死循环。为了解决这个问题,产生了一种用于监测单片机程序运行状态的模块或芯片,叫做看门狗(WatchDog),而这个东西已经集成在STM32芯片内部。它能在系统跑飞的情况下将系统复位,重新执行程序。

STM32有两个看门狗,一个是窗口看门狗,由APB1时钟分频后得到的时钟驱动;另一个是独立看门狗,由专用的低速时钟(LSI)驱动,它是由内部的RC振荡器产生的,约为40KHZ,即使主时钟发生故障它仍然有效。

看门狗的原理是:当我们使能看门狗时(往键值寄存器IWDG_KR写入0xCCCC实现),12位的计数器就会从0xFFF开始递减,直到减为0,系统复位。在这个过程中,我们要不断地喂狗,才能使系统不复位。喂狗是将重装载寄存器的值赋给计数器,然后计数器从这个值开始递减。

由于预分频寄存器IWDG_PR和重装载寄存器IWDG_RLR有写保护功能,即如果不取消这个功能,不能往里面写数据。1)所以首先要往下面第一个库函数里面写0x5555,取消写保护。2)然后设置预分频系数和重装载值。3)使能看门狗。4)程序喂狗。

本次程序将实现一个功能:LED灯在初始化后是灭的状态,经过200mS的延时后点亮,即如果系统不断复位,则灯会一直闪烁。而当按下按键时,会实现喂狗功能,也就是将重装载值赋给计数器去递减。而计数器递减至0的时间设置为2S,也就是说如果2S内没有去按下按键(喂狗),则系统复位。如果2S内一直按按键,则LED常亮。

知乎视频​www.zhihu.com

proteus里面没有stm32怎么办_学习STM32日志——独立看门狗实验(20.06.23)相关推荐

  1. stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十一章 独 ...

  2. STM32独立看门狗实验

    一 为什么需要看门狗? 在MCU微型计算机系统中,MCU运行程序很容易受到外界电磁场的干扰,从而造成程序运行错误甚至发生跑飞现象,从而陷入死循环,程序的正常运行被打乱,从而造成不可预料的严重后果,于是 ...

  3. STM32 独立看门狗实验

    一.STM32 独立看门狗简介 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效.这里需要注意独立看门狗的时钟是一个内部 RC 时钟,所以并不是准确的 ...

  4. stm32专题三十四:独立看门狗 IWDG

    独立看门狗简介 IWDG结构框图 (1)独立看门狗时钟 独立看门狗的时钟由独立的 RC 振荡器 LSI 提供, 即使主时钟发生故障它仍然有效,非常独立. LSI 的频率一般在 30~60KHZ 之间, ...

  5. STM32单片机(4) 独立看门狗实验

    [转载请注明出处:http://blog.csdn.net/leytton/article/details/38393651] /*********************************** ...

  6. 【STM32】独立看门狗程序

    00. 目录 文章目录 00. 目录 01. 独立看门狗简介 02. 程序功能示例 03. 硬件设计 04. 编程步骤 05. 程序示例 06. 附录 07. 声明 01. 独立看门狗简介 STM32 ...

  7. 7、【STM32】独立看门狗和窗口看门狗(IWDG、WWDG)实验

    前言 使用的是正点原子的探索者开发板进行学习,芯片:STM32F407ZGTx 学习说明此文档为本人的学习笔记,注重实践,关于理论部分会给出相应的学习链接. 注:本文档添加了对代码的在线调试功能,有助 ...

  8. 【STM32】IWDG独立看门狗【原理】

    前注:本文章主要讲解[原理] 内容为 '_Snake_'编写,日常学习总结,内容如有不足.不妥之处请私信告知,谢谢! 实验 独立看门狗实验 简介         MCU可能工作在一些复杂环境,可能受到 ...

  9. 看门狗寄存器c语言代码_「正点原子NANO STM32F103开发板资料连载」第十一章 看门狗实验...

    1)实验平台:[正点原子] NANO STM32F103 开发板 2)摘自<正点原子STM32 F1 开发指南(NANO 板-HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 ...

最新文章

  1. vue 模板_简化版的 vue 页面模板语法
  2. 机器学习中的方法技术与应用场景
  3. hdu3016 线段树+简单DP
  4. openerp mysql_Odoo字段(Fields)总结-至2020全
  5. 经常在命令提示符中所使用的命令
  6. jquery相对定位(包含find的使用 find相当于后代选择器)$(选择器1,选择器2)
  7. tomcat ---- jndi方式配置连接
  8. date对象加十分钟_js面向对象-这样学很轻松
  9. 天梯—是不是太胖了(C语言)
  10. golden gate 加initial load 在rac 上的配置
  11. 解题报告 poj 1087
  12. 投简历:求求你给我个机会「小废物招聘全记录①」
  13. Codeblocks中的empty project和console application
  14. 企业微信api发送告警信息
  15. excel在线_EXcel怎么把中文翻译英文?简单2招秒翻译
  16. 微震生命探测仪厂家——微震生命探测仪可以检查毒品
  17. 利用Openlayers4实现地图遮罩效果(三)
  18. 数据有效性做下拉菜单
  19. java 空白图片_图片文件打印空白的解决办法
  20. Python中的三引号''' '''的用法

热门文章

  1. 关于报工和生产订单的一些状态解释
  2. SAP 批次管理(Batch management)
  3. linux中sh+$0,浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释
  4. 深度学习模型保存_解读计算机视觉的深度学习模型
  5. iframe内联元素有白边原因_必看|番茄卷叶病发生的原因以及防治方法!
  6. mysql 两个数据库指定表同步_mysql从2个数据库中同步两个表
  7. Python中list和set的区别
  8. Python取出两个文件中相同的电话号码及地址(文件类型为:txt文本)
  9. python 中五种常用的数据类型
  10. Python中有用的字符串方法