前言

学习stm32 独立看门狗(IWDG)接口使用,学会用STM32内部独立看门狗(IWDG)实现程序异常时自复位功能。

STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。关于窗口看门狗的使用,将在第19讲介绍。

示例详解

基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。

本示例所用的最小系统板原理图:

  1. 从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
  1. 系统时钟树

  1. IWDG配置(50ms)  40000*0.05 = 2000 = 4*500

  1. 引脚配置

  1. 中断配置(保持默认即可)
  1. 工程代码

    1. 在main.c 中加入如下图所示代码(不带喂狗操作):

和带喂狗操作

  1. 到此,我们就完成了IWDG的学习与使用,上面的程序中,不带喂狗操作的程序会定期复位,可从PA0引看到复位后对该引脚的操作波形:

加上喂狗操作后,程序能按原先预设的逻辑长时间运行,PA0脚看有脉冲输出,PA1上的波形变得更加有序和统一:

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!

文中资料下载,在公众号里给十三发消息:

下载|STM32基础系列教程18

关注十三公众号

STM32 基础系列教程 18 – IWDG相关推荐

  1. STM32 基础系列教程 43 – SRAM

    前言 STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合, 比如跑算法或者跑 GUI 等,自带的这些内存就不够用了.比如跑算法或者 ...

  2. STM32 基础系列教程 24 - USB_HID_key

    前言 学习stm32 USB接口使用,学会用CUBE工具快速创建USB设备工程及调试,关于usb的相关知道请读者提前准备并学习,当然如果不想深究其中原理的话,跟着本文来操作就可以实现基于USB的设备开 ...

  3. STM32 基础系列教程 19 – WWDG

    前言 学习stm32 窗口看门狗(WWDG)接口使用,学会用STM32内部窗口看门狗(WWDG)接口实现程序异常时自复位功能.WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序.窗口看门狗由从 ...

  4. STM32 基础系列教程 50 – MbedTls

    前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...

  5. STM32 基础系列教程 49 – Jansson

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  6. STM32 基础系列教程 48 – CJSON

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  7. STM32 基础系列教程 47 - MD5

    前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...

  8. STM32 基础系列教程 46 – RNG

    前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用.用 ...

  9. STM32 基础系列教程 45 - FSMC_LCD_Touch

    前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...

最新文章

  1. 33关Python游戏,测试你的爬虫能力到底及格不?
  2. 微服务该如何进行服务治理?
  3. 智能手机背面玻璃的缺陷检测,分割网络的应用
  4. CodeFirst EF中导航属性的个人理解
  5. 查看WEB服务器的连接数
  6. [Leetcode][第17题][JAVA][电话号码的字母组合][回溯]
  7. 预告|CVPR 2021 论文分享会日程公布!与计算机视觉领域学者一起收获“立体”参会体验...
  8. Linux 下如何查找木马并处理
  9. mybatis基础学习4-插件生成器(根据数据库的表生成文件)
  10. Centos7.6 编译安装heartbeat,及遇到的问题。
  11. Mysql学习总结(45)——Mysql视图和事务
  12. Number()函数转换‘单个数值的数组‘为何是数字?【JavaScript】
  13. 实验2.5 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程
  14. [MyBatis]诡异的Invalid bound statement (not found)错误
  15. [转载] Python中Numpy基础
  16. 十大经典算法总结(JavaScript描述)
  17. 异常 未解决 dubbo 打包 使用将所有的文件打在一个包内 会报错误
  18. 非参数分析-符号秩和检验法
  19. Android绘制圆形图片的3个方法
  20. matlab生成音阶,MATLAB 数字电子琴的功能 电子琴的每个音阶均对应一个特定频率的信号 联合开发网 - pudn.com...

热门文章

  1. cordova 打包工具
  2. 2017-2018-1 20155231 《信息安全系统设计基础》第6周学习总结
  3. JS配合css实现slide文字框缩放伸展效果
  4. 关于重装系统或还原系统
  5. 去除MyEclipse频繁弹出的Update Progress窗口
  6. 购物车实例 转载至http://www.souzz.net/html/edu/net/net1/9460.html
  7. 统计学习II.7 广义线性模型1 指数分布族
  8. Win32 API、VC++、C# 文件操作函数的初步比较
  9. 图解分析一个dNet进销存软件
  10. synchronized 关键字解析