一、问题再现
一天下午,我在开开心心地写代码,结果在学习OLED显示模块时,不知写入了什么魔法代码,导致调试接口无法正常工作。
然后我试着烧录了简单的点灯代码,无法烧录。
报错信息:
DEPRECATED! use 'tcl port' not 'tcl_port'
DEPRECATED! use 'gdb port', not 'gdb_port'
DEPRECATED! use 'tcl port' not 'tcl_port'
Info : clock speed 1000 kHz
Info : STLINK V2J37S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.134536
Error: init mode failed (unable to connect to the target)
in procedure 'program'
** OpenOCD init failed **
shutdown command invoked
接着我更换了一块stm32f103开发板,能够正常烧录点灯代码,于是我便对老开发板的离去表示惋惜。
令人意想不到的是,第二天,我在用新板子烧录同样的代码时,发生了第一天的问题:新板子也烧录不了任何程序!
此时我想到,唉?那就不是硬件的问题了,我的老板子有救了!!于是开始全网搜集信息抢救老板子。
二、问题解决
既然STM32的调试接口SWD被锁死,那么就要寻找解锁的方法。
1.准备工作
硬件:stm32f103c8t6开发板(江协科技买的)、跳线帽(一般自带在板子上)、杜邦线
软件工具:STM32CubeProgrammer
2.BOOT启动模式设置
参考: