前言
学习stm32 独立看门狗(IWDG)接口使用,学会用STM32内部独立看门狗(IWDG)实现程序异常时自复位功能。
STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。关于窗口看门狗的使用,将在第19讲介绍。
示例详解
基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。
本示例所用的最小系统板原理图:
从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
系统时钟树
IWDG配置(50ms) 40000*0.05 = 2000 = 4*500
引脚配置
中断配置(保持默认即可)
工程代码
在main.c 中加入如下图所示代码(不带喂狗操作):
和带喂狗操作
到此,我们就完成了IWDG的学习与使用,上面的程序中,不带喂狗操作的程序会定期复位,可从PA0引看到复位后对该引脚的操作波形:
加上喂狗操作后,程序能按原先预设的逻辑长时间运行,PA0脚看有脉冲输出,PA1上的波形变得更加有序和统一:
OK,本期实验完成!下期见!
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』