STM32F4X 独立看门狗 IWDG

这篇具有很好参考价值的文章主要介绍了STM32F4X 独立看门狗 IWDG。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是看门狗

我们都知道,当一个嵌入式在运行过程中发生死机或者程序跑飞的情况的时候,我们一般都是要手动进行开关机或者复位,让程序能够重新运行。但是当一个嵌入式系统被安装到一些特殊位置时,如果发生了死机又不能及时进行手动复位,这时候就需要看门狗了。看门狗的作用就是监控嵌入式系统的运行情况,如果系统出现死机或者程序跑飞时,就会自动复位系统,无需人为干预。

STM32F4X 独立看门狗的使用

独立看门狗时钟源

在数据手册上我们可以看到,STM32F4X的独立看门狗的时钟源是用LSI内部32K时钟源。
STM32F4X 独立看门狗 IWDG,STM32学习,stm32,嵌入式硬件,单片机

独立看门狗寄存器

关键字寄存器

STM32F4X 独立看门狗 IWDG,STM32学习,stm32,嵌入式硬件,单片机
关键字寄存器主要是通过配置不同的键值来设置独立看门狗的功能。

  • 0xAAAA:重新写入重装载值到重装载寄存器,用于喂狗
  • 0x5555:使能对PR和RLR寄存器的访问
  • 0xCCCC:启动独立看门狗

预分频器寄存器

设置独立看门狗的预分频值
STM32F4X 独立看门狗 IWDG,STM32学习,stm32,嵌入式硬件,单片机

重载寄存器

设置独立看门狗的计数值
STM32F4X 独立看门狗 IWDG,STM32学习,stm32,嵌入式硬件,单片机

状态寄存器

判断独立看门狗的状态
STM32F4X 独立看门狗 IWDG,STM32学习,stm32,嵌入式硬件,单片机
可以看到独立看门狗其实跟普通定时器的原理是一样的,也是通过设置一个频率,然后不停地进行计数。不同的是独立看门狗当计数值超过设定值时,如果我们不进行喂狗,就会复位系统,需要注意的是,看门狗一旦启动就不能停止,只能通过复位或掉电停止。

独立看门狗计数频率计算

独立看门狗的计数频率其实跟普通定时器的计算是一样的。假设独立看门狗的时钟源为32KHZ,预分频为64分频,重载值设为1000。那么独立看门狗的溢出时间可以这样计算。
Tout = ( 1 / (32000 / 64)) * 1000 = 2s
也就是独立看门狗的溢出时间是2s,当这2秒内我们不进行喂狗的话,独立看门狗就会复位系统。

独立看门狗例程

在例程中会将看门狗的复位时间设置成3秒。在main函数中会先以500ms的频率进行10次喂狗,喂狗次数大于10次之后就停止喂狗,看门狗就会在3秒后复位系统。

#include "iwdt.h"
void bsp_iwdg_init(void)
{
	IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // 使能看门狗寄存器写
	
	IWDG_SetPrescaler(IWDG_Prescaler_64); // 设置预分配为64 也就是 1 / (32000 / 64) = 2ms
	
	IWDG_SetReload(1500); // 计1500个数
	
	IWDG_ReloadCounter(); // 重新写入重装载值到重装载寄存器,用于喂狗
	
	IWDG_Enable(); // 使能看门狗,一旦使能就不能停止
}

void IWDG_Feed(void)
{
	IWDG_ReloadCounter();// 重新写入重装载值到重装载寄存器,用于喂狗
}

int main(void)
{
	int cnt = 10;
	NVIC_PriorityGroupConfig(2);
	system_tick_init();
	
	bsp_usart_init(115200);
	bsp_iwdg_init();
	printf("system init...\r\n");
  while(1){
		while(cnt-- > 0)
		{
			IWDG_Feed();
			delay_ms(500); // 每隔500ms喂一次狗,防止复位
		}	
		printf("看门狗将在3秒后复位\r\n");
		delay_ms(1000);
		printf("看门狗将在2秒后复位\r\n");
		delay_ms(1000);
		printf("看门狗将在1秒后复位\r\n");
		delay_ms(1000);
	}
  
}

STM32F4X 独立看门狗 IWDG,STM32学习,stm32,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-678481.html

到了这里,关于STM32F4X 独立看门狗 IWDG的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F4X USART串口使用

    串口是MCU与外部通信的重要通信接口,也是MCU在开发过程中的调试利器。串口通信有几个重要的参数,分别是波特率、起始位、数据位、校验位。双方在进行串口通信前必须要约定好通信的参数,否则会导致通信失败。 起始位是自动产生,无需配置,通常是产生一个低电平为

    2024年02月11日
    浏览(60)
  • STM32F4X RNG随机数发生器

    随机数顾名思义就是随机产生的数字,这种数字最大的特点就是其不确定性,你不知道它下一次产生的数字是什么。随机数被广泛应用于密码学、模拟实验、游戏开发领域等。 RNG的控制寄存器的bit0使能随机数发生器是否工作,bit1则使能是否使用中断 状态寄存器是判断随机数

    2024年02月10日
    浏览(47)
  • STM32F4X SDIO(四) SDIO控制器

    STM32F4X内部有一个SDIO控制器,开发者可以使用这个控制器跟SD卡进行通信,下面就来简单了解一下STM32F4X的SDIO控制器的使用。 下图为STM32F4X的SDIO控制器框图,框图可以分为以下5部分, 适配器寄存器 、 FIFO 、 控制单元 、 命令路径 、 数据路径 。 SDIO控制器时钟 STM32F4X的所有

    2024年02月07日
    浏览(55)
  • STM32F4X SDIO(七) 例程讲解-SD_InitializeCards & SD_GetCardInfo

    本节例程基于 野火电子的STM32F407的SD卡读写例程 进行讲解。上一节中讲解了SD卡上电过程,这节将会讲解一下SD卡的初始化过程,包括 获取SD卡的CID、CSD和SD卡RCA地址 。 CMD2的作用是 通知所有卡通过CMD线返回CID值 ,CID值包括 SD卡的识别号、制造商ID、OEMID、产品名称、版本号、

    2024年02月05日
    浏览(49)
  • 单片机:STM32F4x HAL库软硬SPI驱动ST7735s 1.8寸LCD屏幕

    说明:此篇为学习记录。可能存在错误或者不足。如有问题请指出。 主控芯片:STM32F411CEU6 主控开发板:WeAct STM32F411CEU6最小系统板 TFT-LCD屏幕:合宙1.8寸TFT-LCD,驱动为ST7735s MDK版本:5,32 HAL库版本:1.27.1 STM32CubeMX版本:6.7.0 ST7735s支持8080并口,3线和4线串行接口,模块的驱动方

    2024年02月03日
    浏览(59)
  • 【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)

    📍相关篇《【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例》 🌿《【IAR工程】STM8S208RB基于ST标准库下EXTI外部中断》 🌿《【IAR工程】STM8S208RB基于ST标准库蜂鸣器(BEEP)驱动》 🌿《【IAR工程】STM8S208RB基于ST标准库下自动唤醒(AWU)》 🔖基于ST STM8S/A标准外设库:STSW-STM8069,版本号:

    2023年04月08日
    浏览(51)
  • 【STM32】基础知识 第十五课 看门狗 IWDG 深入理解与应用

    STM32 系列单片机具有强大的内置功能, 其中之一就是独立看门口 (IWDG). 看门狗定时器是一种重要的硬件设备, 用于防止系统软件故障. 在许多应用中, 看门狗定时器的使用是至关重要的, 它可以检测和解决软件错误, 提高系统的可靠性. 今天小白将带领大家深入探讨 STM32 独立看门

    2024年02月11日
    浏览(52)
  • 【STM32笔记】STM32的看门狗详解(独立看门狗和窗口看门狗)

      首先,它不是真的狗。看门狗(Watchdog)是一种硬件定时器,用于监测程序执行是否正常,并在系统出现故障或死锁时重启系统。在STM32F10xxx中内置了两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。 两个看门狗设备(独立看门狗和窗口看门狗)可用来

    2024年02月04日
    浏览(52)
  • STM32—看门狗详解入门(独立看门狗、窗口看门狗)

    目录 一、什么是看门狗? 二、独立看门狗IWDG 1.特点、本质及原理 2.配置 3.main.c代码 三、窗口看门狗WWDG 1.特点、本质及原理 2.配置 3.main.c代码 四、独立看门狗与窗口看门狗的比较         看门狗主要是用来监测单片机运行状态和解决程序引起的故障的模块。         

    2024年02月15日
    浏览(55)
  • GD32F4移植STM32F4

    近期在项目中采用了GD32F407VET6替换原项目中的STM32F407VET6,网传GD的兼容性很好,之前也用F1系统的替换了一下,按照CSND各位大佬的经验一步步改进了代码,测试直接通过,现在也一直在项目中实际应用了,一直没有出问题。 所以这SMT时,嘉立创没有STM的货果断换成了GD,可换时

    2024年02月16日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包