STM32CubeIDE无法连接STM32F103C6T6,多次烧录后出现调试错误
问题现象
首次通过STM32CubeIDE向STM32F103C6T6烧录代码成功,但多次烧录后未拔插设备的情况下出现连接失败,调试报错如下:
Error in final launch sequence:
Failed to execute MI command:
target extended-remote localhost:3333
Error message from debugger back end:
localhost:3333: The system tried to join a drive to a directory on a joined drive.
Failed to execute MI command:
target extended-remote localhost:3333
Error message from debugger back end:
localhost:3333: The system tried to join a drive to a directory on a joined drive.
localhost:3333: The system tried to join a drive to a directory on a joined drive.
解决方案
终止占用调试端口的进程
报错指向localhost:3333端口,大概率是之前的调试/烧录进程未正常退出导致端口被占用。在Windows命令提示符执行以下操作:- 查找占用3333端口的进程ID:
netstat -ano | findstr :3333 - 强制终止该进程:
taskkill /PID <查到的PID数值> /F
- 查找占用3333端口的进程ID:
重置IDE与调试会话
- 完全关闭STM32CubeIDE,打开任务管理器结束所有相关进程(包括STM32CubeIDE、OpenOCD.exe等)
- 重新启动IDE,打开调试配置(Run > Debug Configurations),确认调试器的端口设置为3333,且OpenOCD配置文件适配STM32F103C6T6(如使用ST-Link则选择
stlink-v2.cfg或对应型号的配置文件) - 重新尝试烧录/调试
硬件重置目标板
无需拔插USB,直接给STM32F103C6T6断电(断开电源或USB供电)后重新上电,重置目标板的通信状态,再尝试连接。排查系统驱动器挂载冲突
报错提示的系统驱动器挂载冲突,可能是Windows下的虚拟驱动器(如WSL挂载盘、网盘同步盘、虚拟光驱等)导致的。暂时卸载这类不必要的虚拟驱动器,再重新启动IDE进行调试。
内容的提问来源于stack exchange,提问作者omarakl

