一直在用J-LINK,最近改用ST-Link,出现了不少无法下载程序的情况,这里列出几种解决的办法(针对STM32F103系列):
1#是不是你没有选择Flash算法?
什么都没有加的话,会提示“找不到Flash算法”的哦
2#是不是你JTAG下载了?
赶紧调回SW下载。
3#ISP下载
用户有的时候会不小心把PA13 or PA14的SW功能给关了,这时候ST-Link会显示“no SW-DP found”。这时只能用ISP下载,具体方法是BOOT0 = 1,BOOT1 = 0,一般来说就能下了,下完之后记得切换为BOOT0 = BOOT1 = 0,让系统正常运行。
当然有蜜汁bug的时候也可以试试,有一次我就是下载器供电不稳把芯片锁死了,用这种方法解决了。
4#下载时按住Reset
有一次发现芯片信息读不出来,按住Reset就能读出来,松开又没有。我一直按住Reset下载,显示“Core is held reset”。于是我先按住Reset,在ST-Link擦除Flash 的时候松开,就能够正常下载了。下载进去一次之后,芯片就好了,不知道什么原因。
5#降低下载速率
有的时候可行。
6#更新ST-LINK固件
在keil目录下有ST-LINK更新固件的程序,更新下固件有时候有可能解决问题(特别是报错为“Internal Command Error”的时候,有可能是这个问题)。如果更新固件后STLINK不能识别(即出现USB Communication Error),重新安装驱动并重启(实在不行主板掉电即可)。