STM32硬件看门狗的使用

本文介绍如何在STM32项目中手动添加并配置硬件看门狗库文件,包括使能看门狗、设置喂狗时间和在程序中喂狗的方法。同时,还介绍了如何通过STM32STLinkUtility软件设置选项字节来启用硬件看门狗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文使用STM32 STLink Utility和STM32CUBELDE

1.手动添加库文件

由于使用硬件看门狗,在STM32CUBELDE内的图形界面设置时不使能看门狗。
由于STM32CUBELDE图形界面设置时未使能看门狗,因此不会自动包含库文件(与工程设置相关),需要手动添加相关文件。
我的文件是从使用看门狗的工程里拷贝出来的,放到我们要使用的工程相应的文件夹下。以STM32G0系列为例,文件包含stm32g0xx_hal_iwdg.hstm32g0xx_hal_iwdg.c,分别位于工程文件夹里的Drivers->STM32G0XX_HAL_Driver的Inc文件夹和Src文件夹内。

2.使能看门狗的使用

仅仅添加库文件还不能在工程里面使用看门狗相关的一些宏定义,还需要在stm32g0xx_hal_conf.h文件内进行配置。此文件位于工程文件夹下的Core->Inc文件夹内。
打开文件后,搜索HAL_IWDG_MODULE_ENABLED,找到#define HAL_IWDG_MODULE_ENABLED取消注释即可。

注意:第一二步在每次使用.ioc文件生成代码后需要重新配置

3.在程序里配置硬件看门狗的喂狗时间

配置硬件看门狗的喂狗时间代码如下,大家可根据需要自行修改分频系数和重加载值。
该函数在main函数之前,SystemClock_Config();之后调用即可。

void IWDG_Configuration(void)
{
	WRITE_REG(IWDG->KR, IWDG_KEY_WRITE_ACCESS_ENABLE);	/*看门狗相关寄存器写使能*/
	WRITE_REG(IWDG->PR, IWDG_PRESCALER_128);	/*设置分频系数*/
	WRITE_REG(IWDG->RLR, 0xfff);	/*设置重加载值*/
	WRITE_REG(IWDG->KR, IWDG_KEY_RELOAD);	/*喂狗*/
	WRITE_REG(IWDG->KR, IWDG_KEY_ENABLE);	/*看门狗使能*/
}

4.在合适的地方喂狗

在需要喂狗的地方,加入WRITE_REG(IWDG->KR, IWDG_KEY_RELOAD);即可。

5.设置stm32的选项字节,打开硬件看门狗

打开STM32 STLink Utility软件,连接好下载工具后点击按钮1将硬件与STM32 STLink Utility连接,然后点击按钮2擦除全片flash。
在这里插入图片描述
然后点击顶部菜单栏的Target->Automatic Mode,在弹出的窗口中选择要下载的文件,然后点击configure按钮
在这里插入图片描述
在弹出的窗口中将WDG_SW的勾选去掉(0代表使用硬看门狗, 1代表使用软件看门狗),如下图
在这里插入图片描述
设置完成后点击“Apply”按钮关闭该窗口,再点击“Start”开始下载程序,下载完成后点击“stop”按钮(有些设置需要重启才能运行)。(本文旨在记录硬件看门狗的使用,因此未详细介绍STM32 STLink Utility的使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值