stlink仿真器报错及处理过程记录

时间:2024-04-13 15:30:10

项目使用stlink连接stm32f101系列的芯片,因为没有仔细阅读相关资料,出一些莫名的错,搞了大半天。

前言

使用正版的stlink系列仿真器,身在山寨之国,貌似不用盗版不太合适,这里的盗版指的是别人生产来卖钱的,自己根据电路图做的不算,其实正版也才100多块,真的差那点钱吗?
OK,下面是正式的过程

应该知道的

stlink仿真器要在windows平台上使用要下面这几个东西:
stlink仿真器报错及处理过程记录
最下面那个USB驱动是必须的,上面两个ST-LINK utility和firmware upgrade可选,分别是烧写程序工具和仿真器固件升级工具(其实这个最重要,这就是山寨和正版的区别了)。
如果运气好,安装好驱动和utility后,连接一般开发板就可以在keil5里面用了。我属于运气比较背那种。下面是我遇到的问题:

1、报错提示仿真器固件版本过低,要求更新

在ST-LINK utility中连接芯片,提示仿真器版本过低,要更新,点击更新,报错提示:“ST LINK is not in the DFU mode plesse restart it”,这个度娘一下就知道了,拔一下仿真器USB插头,断一下电,再接上,好了,不报这个错,更新成功了。
stlink仿真器报错及处理过程记录

2、连不上器件

再用ST-LINK连接芯片,各种报错,各种连不上,“Internal command error”,(这里用的别人的截图)
stlink仿真器报错及处理过程记录
度娘说把Connect改为"with Pre-reset",没有用;重新上电,没有用;按住复位再点连接,没有用;这个时候应该检查两个地方:
1、boot0,boot1引脚是否正确;
2、仿真器TVCC引脚是否引入芯片供电电压,(我就是这里没接),TVCC是仿真器检测器件是否供电,及供电电压的输入引脚,如果这里没有电压,仿真器会认为芯片睡眠、休眠或者没上电,就直接不下载程序了;
stlink仿真器报错及处理过程记录
这里引用一张别人的图,19脚是供电,1,2脚是检测,如果实在不想接,就把19脚和1脚短接。我最后用了1,7,9,12四个引脚,接上TVCC引脚之后就可以连接,调试及下载了;
stlink仿真器报错及处理过程记录

3、仿真器升级固件报错"the content of STLink is corrupt"

意思说是仿真器损坏,貌似遇到这个问题的人不多,用windows版程序升级固件的时候报这个错”the content of STLink is corrupt“,解决办法是用java版的升级程序来升级固件,就是上面第二个压缩包中带的jar程序,当然你的系统要有java运行环境。
stlink仿真器报错及处理过程记录
stlink仿真器报错及处理过程记录
这个程序好处是,都不用拔一下,直接点Open in update mode,再点Upgrade就开始了,而且可以修复上面那个提示仿真器损坏的问题。

总结

其实就是没好好看stlink的资料,还有对应的sw调试接口的资料,如果接了那根TVCC,估计少走很多弯路。

科学还是少靠直觉,多靠思考,多度娘,度娘不了再…