单片机学习小组
直播中

李芳

7年用户 1351经验值
私信 关注

如何解决STM32禁用SWD调试接口后不能下载程序的问题?

如何解决STM32禁用SWD调试接口后不能下载程序的问题?

回帖(1)

魏贝贝

2022-1-27 10:32:34
STM32的PA13(SWDIO)、PA14(SWCLK)这两个引脚为SWD调试接口,因为STM32默认把这两个接口当作了下载接口,所以如果程序中有用到这两个接口的任意一个(比如用来作为普通I/O口),STM32内部运行程序时,该接口就会被屏蔽掉,因此当我们接上SWD下载器下载程序,KEIL会提示无法连接到STM32。
解决方法:这其实非常简单,因为STM32在内部运行了程序,所以才导致下载接口被屏蔽了,那我只需要把程序停下来不就好了?是的!!!
如下图:
STM32运行时,NRST复位引脚需要接高电平,当该引脚接低电平时,STM32会进入复位状态,此时不会运行程序。

具体做法

1、针对只有VCC、GND、SWCLK、SWDIO四线的下载器(无单独NRST引脚)

用镊子或者跳线把STM32的NRST引脚拉低,并一直使STM32处于复位状态,然后单击KEIL的DOWNLOAD按钮,因为这时候MCU一直处于复位,所以当我们DOWNLOAD下载代码时,立刻松手让MCU的NRST引脚拉高,这就可以成功下载了,如果松手太慢则会下载失败!!!
2、针对有单独NRST引脚的下载器(其实就是为了解决做法一需要手动拉低电平的问题)

在KEIL工具里打开魔术棒-DEBUG-Setting-Connect&Reset Options-下拉选中with Pre-reset选项(其实就是先拉低使MCU复位),然后点击确定就可以了。


把带有独立NRST引脚的下载器连接好,下载过程中示波器捕捉到的NRST引脚信号如下:
NRST引脚由高电平变为低电平,MCU进入复位状态,SWD相关接口能正常使用,持续10ms后正常拉高电平,下载器正常下载程序。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分