前言

学习stm32 窗口看门狗(WWDG)接口使用,学会用STM32内部窗口看门狗(WWDG)接口实现程序异常时自复位功能。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。窗口看门狗由从APB1时钟分频后得到的时钟驱动(PCLK1除以4096 = 36M/4096 = 8.789K),通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器数值之前,如果7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。

WWDG主要特性

● 可编程的自由运行递减计数器

● 条件复位

─ 当递减计数器的值小于0x40, (若看门狗被启动)则产生复位。

─ 当递减计数器在窗口外被重新装载, (若看门狗被启动)则产生复位。见0。

● 如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以被用于重装载计数器以避免WWDG复位。

有关更多的WWDG的信息可参考STM32具体芯片的数据手册!

示例详解

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

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

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

  1. WWDG配置(50ms)  1000/(36M/4096/8) *64 ≈ 58.25ms

图中所示配置方式是窗口看门狗的特殊应用,相当于IWDG,其刷新操作也可以任意进行,当,但有点不是原来WWDG的味道了,所以我们改用下的面的配置方式来操作:

  1. 引脚配置

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

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

和带喂狗操作

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

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

对于窗口看门狗,如果我们在非窗口时间内喂狗操,对应的代码如下:

对应的波形如下(程序运行起来不断复位):

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

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

下载|STM32基础系列教程19

关注十三公众号

STM32 基础系列教程 19 – WWDG相关推荐

  1. STM32 基础系列教程 18 – IWDG

    前言 学习stm32 独立看门狗(IWDG)接口使用,学会用STM32内部独立看门狗(IWDG)实现程序异常时自复位功能. STM32F10xxx内置两个看门狗,提供了更高的安全性.时间的精确性和使用 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. STM32 基础系列教程 44 - FSMC_LCD

    前言 TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为: Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD. STN- ...

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

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

最新文章

  1. 【怎样写代码】确保对象的唯一性 -- 单例模式(一):问题案例
  2. oracle 分列,SQL 问题 如何分列
  3. 【中间件】大数据之分布式消息队列Kafka
  4. insert返回主键 — mybatis selectKey
  5. 8月前端挑战-----如何做到这个月内每天下班学习两小时
  6. 数据分析(一):数据的读写(文件、数据库)
  7. x550网卡linux驱动,intel_I350_I354_X520_X540_X550_intel网卡驱动_NIC驱动下载_5分享
  8. 一个月转推荐:LR算法原理
  9. 电路设计_MOS管导通条件
  10. delphi技巧总结收集
  11. 解决导入protobuf源代码Unity报错的问题
  12. 【NPDP】大师级管理人物盘点:现代管理之父-彼得·德鲁克
  13. 详解WAF与极风云WAF
  14. 023-公平感|领导者的内功
  15. centos 8 使用 nmcli 配置网桥Bridge(最后有踩坑过程)
  16. 【转】职场学做“功夫熊猫”
  17. 华为测试工程师实习面试——技术面+综合面
  18. 关于vue-video-plaer 出现 this.el_.vjs_getProperty is not a function at Flash.buff解决方法
  19. 牛客网最全在线笔试、编程攻略(建议收藏)
  20. 实时互动下视频 QoE 端到端轻量化网络建模

热门文章

  1. Java基础-JDK动态代理
  2. mapreduce任务出错最大尝试次数
  3. MVC中实现订单表和订单详细表联动新增的一种方法
  4. SAP屏幕设计器专题:树控件的使用(九)
  5. ASP.NET2.0通用数据访问类
  6. 25岁以上程序员单身手册
  7. UA Stat PhD Qualify Problems for Finite Sample Space Probability
  8. 并发编程之Synchronized原理
  9. Set 的合集 并集 差集
  10. JetBrains WebStorm 快捷键失效