问题重现
使用Keil5 MDK通过ST-Link烧录程序给stm32时,第一次烧录成功后,第二次无法扫描到ST-Link 软件提示No Target connected
出现问题的原因:
- 板子没有供电
- ST-Link接触不良
- 引脚被占用或者被禁用
解决办法
- 检查板子供电情况
- 确认ST-Link接线良好
- 硬件和接线都没问题情况下,这时候可能是SWD的引脚被占用了,或者被禁用了。
这时候ST-LINK自然无法通过SWD跟板子通信,所以才会提示No Target connected。
所以,这时候按住RESET,再点击download,再松开RESET。原理就是在程序运行到SWD引脚占用之前,把新的程序烧录进去,抢个时间差。
stm32f103c8t6使用PB3和PB4做普通GPIO使用时发现异常 - boot0接高电平时,程序是跑得系统存储器或者内置SRAM中的程序,这时候不跑主闪存存储器的程序,SWD没有占用,ST-LINK也通信正常,烧录一个正常的程序后,再把boot0 接回低电平,就可以再烧录程序了。
我使用的是STM32F103C8T6核心板,第四种方法成功解决
BOOT0 | BOOT0 | MODE |
---|---|---|
0 | X | FLASH |
1 | 1 | SRAM |
1 | 0 | ISP |