本帖最后由 hchzdh 于 2017-8-11 20:10 编辑
第一步:如3楼的朋友所言,更新一下驱动。
第二步:更新一下ST-LINK的固件,在STM32 ST-LINK Utility下有一个更新固件的程序ST-LinkUpgrade.exe
第三步:将Keil的调试选项设置成如下图所示:
还有就是,请确认你的编程器是官方原版,还是网上的盗版,网上的盗版仿真器好多都是号称3线或4线编程,没有硬件复位线,个人认为这是一个“瘸腿”的仿真器,在有些情况下,比如用户将JTAG/SWD口复用为普通的IO端口时,第一次可以烧写程序,当代码运行后将JTAG口的默认状态更改为普通IO口,这时编程器将无法再通过JTAG或SWD口进行编程或调试,因此,就需要将CPU设置为硬件复位状态,使JTAG恢复为默认的调试接口,使其可识别50个时钟脉冲的复位序列,这样才能对CPU编程或调试。而这些“瘸腿”仿真器则无法完成此功能。我有些不明白的是,为什么这些仿真器要千方百计的省去硬件复位线,单单是为了减少一根线吗?个人认为没有必要。这样就丧失了仿真器的通用性。
如果你的仿真器没有问题,经过以上几步还不行的话,请检查你的硬件连线是否正确。另外,如果在Keil下不行,请尝试使用ST官方的烧写工具STM32 ST-LINK Utility.exe或其命令行版本ST-LINK_CLI.exe。
|