STM32的JTAG、SWD和串口下载的问题
2015-05-12 14:53
856 查看
最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式。这样在实际操作中做出一些总结(方法网上都有、这里只是总结记录一下):
1:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
2:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
这里选择你要的模式,我是只用SWD不用JTAG
STM32在程序中禁用JTAG功能后不能进行仿真会出现不能进行JTAG仿真的现象。
如果不小心仅用了JTAG导致下载不了程序了可以用以下方法解决:
1、设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。
将板子重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。
2、设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将STM32的FLASH擦除,之后就可恢复JTAG功能。
使用串口下载的软件Flash_Loader_Demonstrator 官网上有。注意串口下载只能用USART1也就是PA9和PA10引脚的那组。
3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。
直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。
1:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
2:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
这里选择你要的模式,我是只用SWD不用JTAG
void GPIOint(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; GPIO_Init(GPIOA, &GPIO_InitStructure); }
STM32在程序中禁用JTAG功能后不能进行仿真会出现不能进行JTAG仿真的现象。
如果不小心仅用了JTAG导致下载不了程序了可以用以下方法解决:
1、设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。
将板子重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。
2、设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将STM32的FLASH擦除,之后就可恢复JTAG功能。
使用串口下载的软件Flash_Loader_Demonstrator 官网上有。注意串口下载只能用USART1也就是PA9和PA10引脚的那组。
3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。
直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。
相关文章推荐
- stm32不小心把SWD和JTAG都给关了,程序下载不进去,解决办法
- stm32下载方式之串口ISP\swd
- stm32的两种固件下载模式:JTAG和SWD
- stm32下载方式之串口ISP\swd(JLink)
- STM32小问题-复用调试接口JTAG/SWD为普通GPIO
- 偶遇STM32 JTAG和SWD口(调试)被禁用无法下载,已经粗暴解决!
- STM32 禁用swd-jtag下载口后,重新下载程序的方法
- 图解STM32 JLink 采取JTAG 模式和 SWD模式下载时引脚说明
- stm32串口下载出现端口搜索不到或者一直处于连接状态的问题解决办法
- 图解STM32 JLink 采用JTAG 模式和 SWD模式下载时引脚说明
- stm32的两种固件下载模式:JTAG和SWD
- STM32 JTAG/SWD禁用导致无法烧写
- STM32 HAL库DMA串口使用问题集锦
- 关于STM32下载问题的简单理解
- 串口给STM32阿波罗开发板下载程序
- ST_LINK/V2 SWIM和SWD、JTAG下载口说明
- 【STM32烧写方法二】RS232-TTL(用于有些芯片的JTAG和SWD端口被禁止烧写的解决)
- 使用Jlink通过SWD接口给STM32下载程序连线方式
- 串口,下载,SPI问题总结
- stm32单片机进入休眠(STOP)模式后无法下载程序等问题的解决