【STM32F4】HAL库 CubeMX(五)--------独立看门狗实验(IWDG)


# 前言 在前面的学习中,我们主要配置了IO口的输出、输入、中断模式。接下来我们将开始学习STM32F4中IO的复用模式。单片机与外界的联系离不开IO的操作,所以我们继续学习STM32的配置。 后面每个模块的原理仅会简单提示,不会过多讲解,大家可以通过原子的学习视频加深理解,对于某些原理在使用过程中,并不会影响配置。但是配置的参数一定要认识,不然在功能参数区,配置不恰当,会直接影响整个代码。

一、独立看门狗(IWDG)是什么?

STM32F4 的独立看门狗由内部专门的 32Khz 低速时钟(LSI)驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部 RC时钟,所以并不是准确的 32Khz,而是在 15~47Khz 之间的一个可变化的时钟,只是我们在估算的时候,以 32Khz 的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。

二、独立看门狗(IWDG)实验

1.功能配置

1、由于CubeMX直接提供功能的配置,所以在使能某项功能后,IO口会自动选定,然后只需要去配置功能参数即可。
注:在图示区不能选择复用功能,在使能功能后,引脚自动复用。避免库函数的繁琐配置。
2、在功能区搜索IWDG
在这里插入图片描述
3、勾选Activated
在这里插入图片描述
4、查看原子代码,入口参数为4、500
在这里插入图片描述
在这里插入图片描述
5、IWDG已经配置完毕了,现在我们配置一个LED和一个按键检测实验。
在这里插入图片描述
时间计算:设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间(也就是看门狗溢出时间),该时间的计算方式为:
Tout=((4×2^prer) ×rlr) /40
其中 Tout 为看门狗溢出时间(单位为 ms);prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值);

2.时钟配置

RCC时钟配置如前文一样(此处一般情况是不变的)。
【STM32F4】HAL库 CubeMX(一)--------创建工程(点亮LED)

3.生成代码

1、此处提醒一个避免重复写同一个代码的方法,例如可以将按键的操作和宏定义放入一个.c和.h 文件,后面需要就直接把文件放入新工程,在主函数加.h文件即可使用。在原子视频LED实验有提到。
2、在主函数添加如下代码即可实现本实验。(由于本次实验按键只有一个,就直接判断按键即可)
在这里插入图片描述

  	HAL_Delay(10);
	HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET);
	  if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4) == 0)
	  {
		  HAL_Delay(10);//消抖
		  if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4) == 0)
		  {
			  HAL_IWDG_Refresh(&hiwdg);//喂狗
			  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET);//翻转LED
		  }
	  }
	  HAL_Delay(20);

总结

独立看门狗的函数也是在IWDG文件里面找到的┗|`O′|┛ 嗷~~,大家也要学会看文件,毕竟所有函数不可能都列出来的哦。
在这里插入图片描述


  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值