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

您所在的位置:网站首页 缺芯片有什么影响嘛 为什么SWD烧录STM32时BOOT0脚要接高电平,否则SWD下载失败

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

2024-07-11 18:39| 来源: 网络整理| 查看: 265

之前网上买了个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再次烧写就会失败。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3