單片機
返回首頁

【STM32】Debug下禁用看門狗

2021-09-03 來源:eefocus

問題背景:

因為工程中加入了獨立看門狗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();   //關閉時鐘

進入單片機查看更多內容>>
相關視頻
  • TI 新一代 C2000? 微控制器:全方位助力伺服及馬達驅動應用

  • MSP430電容觸摸技術 - 防水Demo演示

  • 直播回放: Microchip Timberwolf? 音頻處理器在線研討會

  • 新唐 8051單片機教程

  • 基于靈動MM32W0系列MCU的指夾血氧儀控制及OTA升級應用方案分享

  • 基于靈動MM32SPIN系列MCU的無感FOC便攜冰箱應用方案分享

    相關電子頭條文章
萝卜大香蕉