STM32无法烧录程序,出现Flash download failed – Target DLL has been cancelled
如果你是使用的STM32cubeMax自动生成代码,并且你的板子之前都可以正常烧录程序,但是就在烧录了STM32cubeMax自动生成的代码,你的板子无法再使用jlink或者ST-link烧录程序了,那么极有可能是程序中隐藏了一条代码关闭了SW和JTGD调试。
详细可以参考这位博主的文章:https://www.cnblogs.com/unclemac/p/12783339.html
我提供的解决办法:
(1)你首先按照博主文章里的这个方法
如果你和我一样是手搓HAL库代码:
注释掉这条语句并且写上使能的语句即可
(2)之后你需要想办法把你修改过的代码烧进你的板子里
①BOOT0拉低(BOOT0下拉从FLASH启动),点击KEIL的DOWNLOAD前先按下板子上的复位键不放,然后点击DOWNLOAD,点击完毕后迅速抬起复位键(也就是在STM32从FLASH启动初始化完毕前就烧录),之后程序就烧录进去了
②第一种办法比较玄学,反正我没得行。
可以使用串口下载程序,学习此视频[9-6] FlyMcu串口下载&STLINK Utility_哔哩哔哩_bilibili
之后你的板子就可以正常使用jlink或stlink等烧录程序了
作者:Winter、rui