ST意法半导体
直播中

哔哔哔-

8年用户 1256经验值
擅长:电源/新能源
私信 关注
[问答]

使用SEGGER j-link调试期间无法冻结IWDG怎么处理?

我已经为我的应用程序 (STM32L053) 配置了 IWDG。当我在调试期间停止应用程序时,IWDG 仍在触发重置。我正在使用 SEGGER j-link。  
我试图使用 __HAL_DBGMCU_FREEZE_IWDG() 宏,但它似乎没有任何影响。我也试过直接写寄存器:
*((volatile int *)(0xE0042008)) |= (1 << 12);
当我检查 APB1_FZ 的 SFR 视图时,DBG_IWDG_STOP 值永远不会改变。
我可以在调试时禁用初始化 IWDG,但这并不理想。有什么帮助吗?







回帖(1)

宫昊

2022-12-12 10:53:44
问题是 RCC_APB2ENR 寄存器中的 DBGEN 位 22 必须设置为在写入 DBG_APB1_FZ 寄存器之前启用 DBG 时钟。
一旦设置了该位,我就可以使用 __HAL_DBGMCU_FREEZE_IWDG() 来设置 DBG_IWDG_STOP 位,并且看门狗在应用程序停止时成功冻结。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分