解决STM32禁用SWD调试接口后不能下载程序的问题 速度一定要快

时间:2021-07-22
本文章向大家介绍解决STM32禁用SWD调试接口后不能下载程序的问题 速度一定要快,主要包括解决STM32禁用SWD调试接口后不能下载程序的问题 速度一定要快使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

小刘同学啊 2020-11-09 22:39:06 1319 收藏 8
文章标签: stm32 keil mdk
版权
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后正常拉高电平,下载器正常下载程序。

————————————————
版权声明:本文为CSDN博主「小刘同学啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42518229/article/details/109587792

原文地址:https://www.cnblogs.com/xiaoheikkkk/p/15045466.html