本文将介绍STM32的看门狗中的独立看门狗,并通过实例来喂狗、体验喂狗与不喂狗的区别。
①STM32看门狗介绍之独立看门狗
②使用STM32CUBEMX来配置工程文件
③代码实现,按键按下喂狗、按键不按下不喂狗程序复位
①STM32看门狗介绍之独立看门狗
看门狗定时器本质上是一个计数器、给计数器一个数值,在程序
运行后计数器的值开始递减,当计数器的值减到0是会将程序复位,若在减到0之前给计数器更新一下值“喂狗”则从最新的值开始递减;
用途:
1、这样做的好处就是程序跑飞、死机时,通过复位的方式使得程序又正常运行;
2、用于将系统从休眠或者空闲模式唤醒。
看门狗的种类:
独立看门狗IWDG
特点:专用时钟LSI、低功耗模式仍可运行、对定时的控制比较松;
窗口看门狗
特点:总线时钟APB1、要求主应用程序在规定时间喂狗、对定时控制比较严
独立看门狗工作原理框图:
独立看门狗的时钟是内部低速时钟、是一个RC时钟,即使主时钟失效也不影响独立看门狗的运行,该时钟是32KHz、但由于是RC时钟其频率范围在15-47khz波动,所以有时定时是有一点误差的。
预分配寄存器:寄存器中的数值对应相应的分频数、最大支持
256分频;
状态寄存器:寄存器中的数值对应预分频器寄存器和重载寄存器
中的值的更新状况,若在更新中、则暂时不能更改这两个寄存器中的值
重载寄存器:寄存器中装着计数器的重装载值
关键字寄存器:负责重装载值的装载、预分频器和重载寄存器是否可写,控制IWDG的启动;
需要注意的是计数器是12位、即喂狗最大间隔时间是有限制的;
②使用STM32CUBEMX来配置工程文件
Step1:使能USART3,用于调试
Step2:使能独立看门狗、并进行配置32分频、3秒内喂狗否则
复位
Step3:PA0设置为输入功能、PA0接的是按键
Step4:生成工程文件
③代码实现,按键按下喂狗、按键不按下不喂狗程序复位
Step1:输出重定向,用于调试
Step2:按键按下喂狗
Step3:效果