MCU踩坑记录:SWD复用为GPIO使用,Jflash连不上的问题

用了某款MCU,由于项目需要用的gpio比较多,只能将SWD烧写口SWD_CLK和SWD_DIO复用为gpio使用。但是程序一旦跑起来,再用jflash就连不上了,如下图所示:

MCU踩坑记录:SWD复用为GPIO使用,Jflash连不上的问题_第1张图片

 如果MCU有BOOT引脚,可以将BOOT引脚配置为其他启动模式不让程序跑起来,SWD不被复用为GPIO就可以再次烧写。但是该款MCU没有BOOT引脚咋办?这样MCU不就再也连不上再也烧写不了了吗?

幸好有IAR这款强大的工具,IAR还是可以正常download,只是会弹出如下对话框:

MCU踩坑记录:SWD复用为GPIO使用,Jflash连不上的问题_第2张图片

点击No就行,程序还可以正常下载正常运行。

但是Jflash连不上怎么办呢?唯一想到的办法是系统上电启动后延时一段时间,(比如200毫秒)再将SWD复用为GPIO使用或者要用到该GPIO的时候再去配置。 这样Jflash就有足够的时间来检测连接MCU。

最后也验证这个方法是可行的,特此记录。有更好办法的小伙伴欢迎留言讨论。

你可能感兴趣的:(mcu,单片机,嵌入式硬件,SWD,JFLASH)