STM32在程序中禁用JTAG功能后不能进行仿真的解决办法

STM32在程序中禁用JTAG功能后不能进行仿真会出现不能进行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功能的影响了。
 
---------------------------------------------------------------------------
 
Q:这样的话,
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
这样设置之后PB3,PB4是不是可以做普通IO使用?可以设置为推挽输出吗?
 
A:可以作为普通IO使用
永不止步步 发表于11-18 09:23 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:345791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号