完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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后正常拉高电平,下载器正常下载程序。 |
|
|
|
只有小组成员才能发言,加入小组>>
3274 浏览 9 评论
2950 浏览 16 评论
3450 浏览 1 评论
8972 浏览 16 评论
4042 浏览 18 评论
1092浏览 3评论
563浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
560浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2296浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1854浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-17 02:24 , Processed in 1.098917 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号