STM32在程序中禁用JTAG功用后不能进行仿真会呈现不能进行JTAG仿真的现象。
在程序中,一般制止JTAG的函数如下所示:
//改动指定管脚的映射GPIO_Remap_SWJ_Disable SWJ 彻底失能(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
//改动指定管脚的映射GPIO_Remap_SWJ_Disable SWJ 彻底失能(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
//改动指定管脚的映射GPIO_Remap_SWJ_JTAGDisableJTAG-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功用的影响了。
lhtzyn777(2009-4-13 11:04:00)
这样的话,
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
这样设置之后PB3,PB4是不是能够做一般IO运用?能够设置为推挽输出吗?
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
这样设置之后PB3,PB4是不是能够做一般IO运用?能够设置为推挽输出吗?
zzu65(2009-4-13 16:35:55)
能够作为一般IO运用