STM32烧录口锁死问题解决


前言

我在给STM32单片机下载程序时,出现下载成功一次后,后面就下载不了了,识别不到下载器设备,经过排查,最终确认是代码配置有误,导致板子烧录口锁死,下面我将把问题的出现到问题的解决进行复现,供各位参考


一、问题的出现

1、现在是一块正常的板子,连接好了STlink,准备下程序

STM32烧录口锁死问题解决_第1张图片

2、我随便下了个程序,下载成功,没问题

STM32烧录口锁死问题解决_第2张图片

3、对程序进行一些修改,使用到了CubeMX,配置过程中没有设置烧录口,或者忘了设置(锁死原因)

STM32烧录口锁死问题解决_第3张图片

4、这是没有配置烧录口的CubeMX生成的错误代码,注意如下语句,我们失能了下载口

STM32烧录口锁死问题解决_第4张图片

5、我们对上面没有设置烧录口的错误代码进行下载,第一次下载,没问题,成功下载进去

STM32烧录口锁死问题解决_第5张图片

6、对上述错误代码,啥也没更改,进行第二次下载,欸!发现下载不了了

STM32烧录口锁死问题解决_第6张图片

7、在keil中检测一下下载设备,也检测不到,至此,我们的烧录口成功被锁死了

STM32烧录口锁死问题解决_第7张图片

二、问题的解决

1、先将错误代码配置正确,将烧录口配置好,然后重新生成代码

STM32烧录口锁死问题解决_第8张图片

2、这是CubeMX生成的配置好烧录口的代码体现,我们使能了烧录口

STM32烧录口锁死问题解决_第9张图片

3、按住板子的复位键,如果你的板子没有复位键,找出你板子的原理图,如下图所示,把连接复位引脚的电容拿根导线给它短了(一个人完成不了可以让好基友帮忙),目的就是让复位引脚直接接地


STM32烧录口锁死问题解决_第10张图片

4、可以在keil的debug里查看一下,发现我们摁住复位键的时候,是能识别到下载设备的

STM32烧录口锁死问题解决_第11张图片

5、(关键操作)复位键不要放的同时,进行程序下载,出现读条的时候或者点击程序下载键0.5~1秒左右,松开复位键

在这里插入图片描述

6、程序下载成功(一次不行的多来几次),问题解决。注意程序配置好烧录口后再下进去,别又下个错误的进去继续锁死

STM32烧录口锁死问题解决_第12张图片

三、总结

在使用CubeMX配置STM32时,如果没有配置SYS里的Debug,那么很有可能导致程序在下载成功一次后,就下载不了了。这是因为STM32微控制器在出厂时,默认是处于安全启动模式的。在这种模式下,只有经过授权的代码才能被下载到微控制器中。如果没有配置SYS里的Debug,那么微控制器将无法进入调试模式。在这种情况下,我们无法使用调试器来下载程序。

总之,记得配置烧录口!!!

你可能感兴趣的:(stm32,嵌入式硬件,单片机,c语言)