将PA13或者PA15复用为普通IO口导致无法识别烧录器的解决方法
一句话:升级接口IO被代码修改应用,导致无法烧录,
解决办法:可以让MCU进入升级模式(拉高boot0,然后复位MCU),然后再烧录。
为了能够确保我的解决方式可以解决此类问题,需要提别说明一些细节。
我选择的烧录器是ST-LINK(j-link我摆弄 了好久没测试成功)
然后操作过程如下:
先复现问题:
我现在的芯片是正常状态,我先烧录问题程序,就是先把PA15复用为禁止JTAG和SW烧录模式,
编译好,然后烧录,然后让它产生之前遇到的问题,这一步叫复现。为了避免以后遇到此类问题浪费时间,反复将旧问题拉出来进行剖析,可以加强记忆和获取更多经验。
烧录后,查看烧录器是否还能识别??答案是否!我高兴的看到,烧录器不能识别了。
开始操作:
第一步 将BOOT0拉高,就是让它短接至3.3V。
第二步 按住复位键(就是将RESET引脚接地,用镊子或者短接线来短接),等待KEIL识别烧录器。
第三步 松开复位键,点击下载(这次下载 的程序把PA13、PA15改回默认配置)
第四步 下载成功后,将boot0拉低。
如果嫌弃这种方法麻烦,可以使用下面的被我证实我这种情况不管用的方法:
所谓的:
0 。先断电 按住复位 上电
1、按着板子上面的复位键不放,若没有按键,就用夹子短路复位电容,这样单片机将停止程序的运行;我的是工程板,RST端口接地就行了。
2. 这时候点击Keil的下载,下方的“Build Output”窗口便会开始滚动,一会之后会提示出错。直接关闭它,放开复位键。
我很讨厌再看到它,因为它不适合我这种情况,却被烂大街的反复提及说是有用的,满屏幕的同一种无效却被说成有效的方法出现在新手面前,这对于新手来说,是致命的坑。