STM32在程序中禁用JTAG功能後不能進行仿真的解決辦法

在程序中,通常禁止JTAG的函數如下所示:

//改變指定管腳的映射 GPIO_Remap_SWJ_Disable SWJ 完全失能(JTAG+SW-DP)

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

//改變指定管腳的映射 GPIO_Remap_SWJ_JTAGDisable JTAG-DP 失能 + SW-DP使能

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);

當設置了以上語句後,當運行了這兩個語句後,JTAG仿真就與目標失去去聯繫。

解決辦法有:

1、設置啟動模式為ISP模式(BOOT0=1、BOOT1=0)或設置啟動模式為RAM運行模式(BOOT0=1、BOOT1=1)。

將開發板斷電後重新上電,此時就因不是在用戶程序模式,因此就不會執行禁用JTAG的語句,JTAG功能也就可以正常使用。
2、設置啟動模式為ISP模式(BOOT0=1、BOOT1=0),用ISP程序將STM32的FLASH擦除,之後就可恢復JTAG功能。

3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。

直接將仿真器的模式設為SWD模,就可以不受這個禁止JTAG功能的影響了。
原文網址:https://read01.com/0e3Ozo.html

未經允許不得轉載:GoMCU » STM32在程序中禁用JTAG功能後不能進行仿真的解決辦法