解决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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)