ST-Link 连不上芯片怎么办?

STM32 · 7 浏览
ST-Link 连不上芯片怎么办?

回答(4)

如果板子有多个电源域,确认SWD引脚没被复用成其他功能,比如被GPIO配置拉低了,可以先用串口擦除整个Flash再连。
码农阿强 · 2026-08-18
注意ST-Link固件版本,太老的可能不支持新芯片,去官网升级一下固件,用ST-Link Utility的Firmware Update。
硬件小白菜 · 2026-08-18
我遇到过是芯片的BOOT0没拉低,导致进入bootloader模式连不上,试试把BOOT0接GND再连。
嵌入式老张 · 2026-08-18
先别急着换线,按顺序排查:1) 确认供电——目标板必须独立供电或ST-Link的3.3V脚供电,且共地;2) 检查接线——SWDIO、SWCLK、GND三根必须连对,VCC脚用于电平检测,务必接上(部分板子不接VCC会报错);3) 复位电路——若目标芯片有外部复位,尝试按住复位键再点连接,或把NRST也接到ST-Link;4) 检查芯片是否被锁死——若之前烧录过读保护,用ST-Link Utility的'Connect under reset'模式(勾选Hot Plug或低速率连接);5) 降低SWD频率——在IDE或CubeProgrammer里把频率降到100kHz以下,排除线缆过长/干扰。 若仍失败,用万用表测SWDIO/SWCLK对地电阻(正常几百欧到几k),短路或开路都说明芯片损坏或虚焊。最后试换一根杜邦线(很多问题出在线材上),或换一个ST-Link(山寨版兼容性差)。 ```c // 伪代码:检查连接状态 if (STLINK_Connect() == ERROR) { printf("Check power & wiring, then retry with low speed\n"); } ```
mcuku 阿沐 · 2026-08-18