为什么SWD烧录STM32时BOOT0脚要接高电平,否则SWD下载失败

之前网上买了个STM32的最小系统开发板,由于最近换了笔记本,为了测试重新搭建的开发环境是否能用,用st-link v2烧写这块开发板,发现居然提示

Reason: (4) No device found on target.

把板子侧的管脚定义,st-link侧的管脚定义,连接杜邦线的连通性都测了,居然还是不行,见鬼了。。。

上网查了下,有人说到买的一个开发板有类似的情况,客服让他把BOOT0短接3.3V,再烧写就可以工作了。嗯?BOOT0短接3.3V不是用于串口下载么,SWD按理说可以无视BOOT0配置,这是什么思路。测试了以下,居然还真的好用了,而且之后再用SWD烧录,无需再短接3.3V和BOOT0。

好奇心被成功勾起,再次网上搜索,直到发现有人说了这样一段话(特意把作者论坛id截图了,以示敬意)
OK,这个应该就是正解了。板子里烧的是出厂程序,我买了后没有新烧录(懒。。。买了有一年多。。。一直没用。。。)。原来的程序不知道是什么样的,但是猜测应该是把SWD调试接口禁用了,这样SWD的引脚就可以用作普通GPIO使用,这样下载完第一次程序后,如果从flash启动(BOOT0==0)则无法继续使用SWD接口重新下载程序或者调试,BOOT0拉高,可以让STM32从RAM启动,这样就可以重新使用SWD下载程序。后面由于我下载的程序里使能了SWD接口,所以不用BOOT0拉高也可以烧写。

OK,用CubeIDE测试一下猜测,禁掉SWD接口,烧录,再次烧录,复现了之前的问题,猜测正确。

更坑的一点是,现在CubeMX默认是把SWD调试关闭的(No Debug),这就导致如果没注意这一点,烧进程序后,BOOT0拉低(STM32推荐的正常工作状态),SWD再次烧写就会失败。

  • 37
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值