一、正确配置ST-LINK
此部分可以帮助解决ST-LINK Connection error的问题



ST-LINK有两种接线方式,一种是JTAG,一种是SWD(SW),网上购买的ST-LINK(下图)是采用SW方式接线的,所以选项中要选择SW而不是JTAG(一般默认第一项)

所以如果STM32板子是JTAG的接口需要转成SW可以参考下图,注意SWDIO和SWCLK即可

此外配置还需要注意设备,这个问题出现在用例程的时候,因为例程的板子和现在正在用的板子不同,则会ST-LINK报错,无法上传程序

二、安装驱动,并正确选择FW Version
此部分可以帮助解决USB communication error的问题
需要注意,驱动包含两部分,一部分是电脑的驱动,一部分是固件
如果ST-LINK插上后电脑没反映(没有读取串口)说明是未安装电脑的驱动,驱动在Keil安装目录->STLink->USBDriver里(没有可以网上搜索下载)64位系统则安装amd64那个exe,32则x86的exe



如果ST-LINK可以被识别,但上传时显示USB communication error,说明FW Version不正确,这里区分ST-LINK,ST-LINK V2,ST-LINK V2.1,ST-LINK V3一定要分清购买的ST-LINK版本
可以在这里
里面查找STSW-LINK00X,这个X就是版本,一般V1对应001,V2对应005,V2.1对应009


点击Connect连接ST-LINK,但是注意一定要将MDK关闭,只留下这个窗口,否则会报错,如下图

连接后点击Yes即可更新固件,我下图这个固件版本适配的是某宝上的ST-LINK,等待程序写完后就可以解决通信错误的问题了,如果还不行,就再多试试几个FW Version,看看哪个合适,反正一定是这个问题

三、Cube编写stm32程序会出现的问题
此部分可以帮助解决USB communication error、NO target connected的问题
首先,除了keil上配置debug,在cube上也要配置debug,需要选择Trace Asynchronous Sw

这个时候能在引脚定义图中看到PA13和14已经被定义了,这就是正确的,所以这也提醒我们在定义引脚的时候,不能定义PA13/14,否则ST-LINK就无法使用了,必须注意这个

另外如果还是一直出现NO target connected的错误,也可以在点击上传后按住Reset键一会,再松开即可正常上传程序,这是一个妙招,至于为什么不太清楚,但是肯定是可以解决问题的
相关文章: