【STM32】Debug下禁用看门狗

问题背景

因为工程中加入了独立看门狗IWDG,但是有时候需要硬件仿真单步调试设置个断点啥的,这时候看门狗就会因为没有及时喂狗复位,弹窗报错,整个仿真都不能继续了。实测JLINK会弹窗如下图所示,但是亲儿子STLINK没有任何弹窗…在这里插入图片描述
之前一直都是在debug的时候关掉看门狗宏定义,但是这样麻烦不说,会有一个隐患存在就是,真正的项目工程是需要看门狗的,我们随意关掉的话,终究会存在debug完之后忘记再重新打开看门狗的问题,所以我们最好的办法是能够在debug这个特定的条件下,冻结掉看门狗,就像低功耗下冻结看门狗一样。

解决办法:

翻阅参考手册

在这里插入图片描述
在这里插入图片描述

#define __HAL_DBGMCU_FREEZE_IWDG()           SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)
#define __HAL_DBGMCU_UNFREEZE_IWDG()         CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)

/*********************调试模式下禁用独立看门狗IWDG**********************************/
	__HAL_RCC_DBGMCU_CLK_ENABLE();  //打开时钟
	__HAL_DBGMCU_FREEZE_IWDG();	  //调试模式下,冻结看门狗计数器时钟
    __HAL_RCC_DBGMCU_CLK_DISABLE();   //关闭时钟
    
/*********************调试模式下使能独立看门狗IWDG**********************************/
	__HAL_RCC_DBGMCU_CLK_ENABLE();  //打开时钟
	__HAL_DBGMCU_UNFREEZE_IWDG();	  //调试模式下,使能看门狗计数器时钟
    __HAL_RCC_DBGMCU_CLK_DISABLE();   //关闭时钟
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值