STM32 无法下载 芯片锁死 M3错误 烧录错误的程序导致芯片FLASH锁定无法再次烧录或擦除的一种解决方案: 某年某月某日,我偶然将一套MM32改进后的程序烧录进STM32F103RCT6中,当时的烧录后直接进入了调试界面,发现了一个情况就是,程序的起点不是配置系统时钟,而是一个FLASH函数的某条语句, 所以我当时我猜测肯定是配置错误,所以退出程序调试,检查代码配置,检查发现是MM32的某些残留配置没有修改为对应的STM32芯片设置导致的问题。 配置修好后,重新烧录,软硬件连接正常,烧录器连接正常(设备号都是正常显示的)但就是无法再次烧录,界面提示如下: 按照处理“Error: Flash Download failed - “Cortex-M3””的经验,我尝试了多种方法,均对解决问题无效。 我的猜测有多种,比如可能是启动代码出现了问题,启动设置出现了问题(但BOOT1和BOOT2接地或者3.3V都没有解决问题)。 我开始查阅网上的资料,很失望,他们想到的方法和我一样, 此时脑子里肯定不免想到:板子废了问题搁置了问题没有解决生气~~,当前被这个问题耗费了多半天时间和精力,先搁置了。 开始处理代码,或者其他项目。 然后后面对代码的调试谨慎了许多,规避问题始终是解决问题的最差的办法,所以,今天我决定拿出我自己的开发板尝试,终于开发板也废了。 不过,我在查阅资料时,发现有做其他项目的提示ST-LINK Utility的设置里面有“connect under reset”能够让FLASH复位然后再烧录。
于是,我也这样做,打开ST-LINK Utility,先点击链接, 选择加载任意一个正常的STM32平台 的hex文件。 找到“Target”–>“Set”,点开后出现上述窗口,选择“connect under reset”,跳出窗口提示如下: 然后再点击烧录,程序提示: 不管烧录结果如何(不管烧录成功还是失败), 最后再点击擦除! 然后重新把烧录器拔去,重新插上烧录器,配置“Target”–>“Set”,点开后出现上述窗口,选择“normal”! 重新烧录! 问题解决! 恭喜,你解救了至少一个板子,这为自己节省几十元,以后遇到这种情况,为自己节省更多。
|