STM32独立看门狗详解

2023-06-20  

本文将介绍STM32的看门狗中的独立看门狗,并通过实例来喂狗、体验喂狗与不喂狗的区别。


①STM32看门狗介绍之独立看门狗

②使用STM32CUBEMX来配置工程文件

③代码实现,按键按下喂狗、按键不按下不喂狗程序复位

①STM32看门狗介绍之独立看门狗

看门狗定时器本质上是一个计数器、给计数器一个数值,在程序

运行后计数器的值开始递减,当计数器的值减到0是会将程序复位,若在减到0之前给计数器更新一下值“喂狗”则从最新的值开始递减;


用途:

1、这样做的好处就是程序跑飞、死机时,通过复位的方式使得程序又正常运行;

2、用于将系统从休眠或者空闲模式唤醒。

看门狗的种类:

独立看门狗IWDG

特点:专用时钟LSI、低功耗模式仍可运行、对定时的控制比较松;

窗口看门狗

特点:总线时钟APB1、要求主应用程序在规定时间喂狗、对定时控制比较严

独立看门狗工作原理框图:

wKgZomRGRnmASlQxAAB061gcpTA295.jpg

独立看门狗的时钟是内部低速时钟、是一个RC时钟,即使主时钟失效也不影响独立看门狗的运行,该时钟是32KHz、但由于是RC时钟其频率范围在15-47khz波动,所以有时定时是有一点误差的。

预分配寄存器:寄存器中的数值对应相应的分频数、最大支持

256分频;

状态寄存器:寄存器中的数值对应预分频器寄存器和重载寄存器

中的值的更新状况,若在更新中、则暂时不能更改这两个寄存器中的值

重载寄存器:寄存器中装着计数器的重装载值

关键字寄存器:负责重装载值的装载、预分频器和重载寄存器是否可写,控制IWDG的启动;

需要注意的是计数器是12位、即喂狗最大间隔时间是有限制的;

②使用STM32CUBEMX来配置工程文件

Step1:使能USART3,用于调试

wKgZomRGRnqAGpy5AAON6QP359E962.jpg

Step2:使能独立看门狗、并进行配置32分频、3秒内喂狗否则

复位

wKgaomRGRnqAJLX5AAM_HiNSvB8016.jpg

Step3:PA0设置为输入功能、PA0接的是按键

wKgZomRGRnuAOf1LAALyJwtiv54810.jpg

Step4:生成工程文件

wKgaomRGRnyAVXxfAAKgeEGr8FE911.jpg

wKgZomRGRnyAQwVLAAKITTHy7eY826.jpg

wKgaomRGRn2AGztlAAKDxz9vRLI836.jpg

③代码实现,按键按下喂狗、按键不按下不喂狗程序复位

Step1:输出重定向,用于调试

wKgZomRGRn2AHpjNAAPI4PKJ5c8284.jpg

Step2:按键按下喂狗

wKgaomRGRn6AVxJlAASsr_5T_so460.jpg

Step3:效果

wKgZomRGRn6AHxV1AABiTWMM5yw621.jpg

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。