ST-Link设备初始化错误 - 连接设备失败

12

我目前正在使用ST-Link调试器对我的STM32F3 Discovery板进行编程。我使用的IDE是Atollic TrueStudio 5.5.2。现在我面临一个非常奇怪的问题,即每当我想将程序下载到我的STM32时,我总是收到以下消息:

初始化ST-Link设备时出错。原因:(-1)无法连接到设备。请检查目标电源和电缆。

我已经尝试了一些从Internet上找到的解决方案,但问题仍然存在。有人遇到过这样的问题吗?任何建议都会有帮助。 enter image description here

下面是我找到的解决方案,但它对我没有用。 http://www.kerrywong.com/2012/08/02/the-dreaded-cannot-connect-to-st-link-error-message/


2
请检查开发板上的跳线是否正确,特别是用于ST-LINK和电源的跳线(不确定板子上有哪些跳线)。尝试将所有设备关闭然后重新启动。尝试重新安装驱动程序。如果它曾经工作过,但以上方法都无效,恐怕您可能已经损坏了开发板! - Realtime Rik
感谢您的建议,我已经把开发板上所有跳线拆掉并重新安装了驱动程序3次,但问题仍然无法解决。此外,我确定我的板子没问题,因为我可以在其他笔记本电脑上对它进行编程。 - Leonard1995
你能使用从ST下载的免费软件连接到你的ST-Link吗?如果可以,那么这是一个Atollic的问题,他们应该对他们的产品提供支持。 - Andy Brown
几天前我想到了一个很蠢的解决方案,就是将我之前项目中的“设置”文件复制到当前项目中替换原有的“设置”文件,问题得以解决。但是当我对比了一下之前和现在项目中的设置时,似乎并没有什么差别。 - Leonard1995
2
@KalmanRotert 你好,你能解决这个问题吗?我也遇到了同样的问题。我的主机是Ubuntu 16 LTS 64位。已安装st-link、TRUEStudio和CUBEMx。我有udev规则,并且可以在/dev文件夹中看到几个与st相关的驱动程序。我连接了STM32L476 Discovery板并尝试运行LED闪烁程序,但出现“ST-Link枚举失败。初始化ST-Link设备时出错。”lsusb也没有显示该板。在Windows上检查了一下板子,没问题。原因:ST-Link DLL错误。 - jxgn
6个回答

4

我在Ubuntu上遇到了同样的情况。我使用STM32CubeProgrammer解决了这个问题。

在ST-LINK配置区域中:

  1. 序列号-> 刷新以获取您的stlink序列号
  2. 模式:复位时
  3. 复位模式:核心复位

当您给开发板供电并尽快连接时,尝试全片擦除。 它应该准备好下一次使用。 希望有所帮助。


问题已解决!谢谢! - Luka Ganić

3

虽然我不是电脑方面的专家,但我在使用来自aliexpress的外部ST-LINK V2时发现,在Windows 10中,PC设备可能会默认选择错误的设备驱动程序,而您需要做的就是更改对应设备的驱动程序。

以下是更改驱动程序的方法:

Hit Windows key 
Type "device manager"
Locate connected ST link device Right click-> "Update driver"
browse my PC -> Let me pick from a list available
and there you want to select STLink Dongle Version:("Your most recent")

这基本上解决了我所有的问题。


谢谢您!我已经尝试修复这个问题太久了,但终于通过了。 - Steve Klabnik
谢谢,这也解决了我的问题。供参考,我遇到了一个“ST-LINK DLL错误”,“无法启动GDB服务器”的问题。 - giacomo-b

1
您可以尝试以下步骤。
确保安装了正确版本的驱动程序(32位或64位)。
如果使用外部ST-Link,请确保连接VCC、GND、RESET、SWDIO和SWDCLK。
如果使用外部ST-Link,请确保Atollic正在使用正确的ST-Link。您可能连接了两个ST-link(外部和嵌入式)。
确保ST-Link设置为SWD模式而不是JTAG模式。
在Atollic中,您还可以更改ST-Link连接到目标的方式。尝试不同的组合,例如在硬件复位下连接。

1
感谢您的建议,但仍无法解决这个问题。 - Leonard1995

1

从Nucleo-144板的文档中,可能会出现一些问题:

在通过USB将Nucleo-144板连接到Windows® 7、Windows® 8或Windows® 10 PC之前,必须安装ST-LINK/V2-1驱动程序。可以从www.st.com网站下载。 如果在安装驱动程序之前连接STM32 Nucleo-144板到PC,则PC设备管理器可能会报告一些Nucleo接口为“未知”。 要从这种情况中恢复,在安装专用驱动程序后,必须手动更新STM32 Nucleo-144板上发现的“未知”USB设备与此专用驱动程序的关联。 建议使用USB Composite Device进行操作,如图所示enter image description here
要对板载STM32进行编程和调试,请将标有红色标记的两个跳线插头放置在连接器CN4上,如图所示。不应使用CN6连接器,因为它可能会干扰与Nucleo-144板的STM32微控制器的通信。 enter image description here

0
在调试器选项卡中,请确保选择SWD,而不是JTAG

-1

输入图像描述 该错误是由于旧固件引起的,使用STLinkUpgrade工具通过USB端口升级ST-LINK、ST-LINK/V2和ST-LINK/V2-1板的固件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接