4

我有一块 NUCLEO-F401RE 板 (带有STM32F401RE),它大部分工作正常。最近,我在这里按照“掌握 STM32 ”一书中的教程进行操作,其中说要安装 OpenOCD。在此之前我也一直在关注,我已经能够连接到我的电路板并毫无问题地闪烁它。

在尝试让 OpenOCD 工作之后,这不再可能。每次我尝试连接到我的开发板时,我都会收到以下错误消息:

No ST-LINK detected

我尝试过多次更新驱动程序,重新启动板,重新安装 ST-LINK 实用程序,切换 USB 电缆,重置板并重新安装所有东西,我还尝试了按住重置按钮并尝试擦除的技巧芯片。到目前为止,不幸的是,这些都没有对我有用。

在这里你可以找到我的董事会的照片。

在我的桌面上,我使用的是 Windows 10。在我的板上,我使用的是 FreeRTOS。 在这里您可以找到我的 Windows 设备管理器的图像。

我还尝试使用 ST-Link 升级来更新我板上的固件,但没有运气。尝试此操作时,我要么没有选择我的设备的选项(使用 .jar 应用程序时),要么使用 .exe 应用程序时,我只收到以下错误消息:

No ST-Link device detected
Please connect it and then retry

我一直无法在任何地方找到解决方案,所以我希望你们能提供帮助!如果您需要任何进一步的相关信息,请告诉我。非常感谢。

4

4 回答 4

2

正如其他答案中所提到的,这个问题几乎可以肯定是由于竞争驱动程序(比如 libusb)控制了设备。

但是,假设您之前已经安装过一次,则无需“卸载并重新安装所有内容”即可选择正确的驱动程序。此外,重新安装过程很可能无济于事,因为卸载程序通常不会卸载驱动程序,Windows 将继续选择相同的错误驱动程序。

相反,打开设备管理器,找到您的 STM32 STLink 设备,双击打开属性对话框。然后单击“更新驱动程序”,然后单击“浏览我的计算机以查找驱动程序软件”,然后单击“让我从计算机上的可用驱动程序列表中选择”,您应该会看到如下内容:

司机名单

您会看到,在此示例中,系统上至少有四个不同的驱动程序很乐意为设备提供服务。前两个是通用的 libusb 驱动程序,不是特定于加密狗的(如果我没记错的话,OpenOCD 很乐意使用其中任何一个)。然而,ST-Link 实用程序需要一个由 STM 开发的专用驱动程序——这是我图片下面的两个条目。如果您没有看到这些,请尝试再次安装 ST-Link 实用程序(无需卸载任何东西)或仅从STM 网站下载驱动程序。

您现在可以单击此列表中的首选驱动程序,并让它替换之前分配给设备的任何驱动程序。

于 2020-05-23T23:00:31.330 回答
1

根据我所学到和理解的(但每个人都可以纠正我:)),您的董事会分为两部分:

  • ST-Link 调试器部分;
  • 其余的与实际的微控制器。

ST-Link 部分用于闪存微控制器,可用于通过 SWD 闪存任何其他 STM32F4 设备。用你的照片:

在此处输入图像描述

STM32 ST-Link Utility 使用电路板的 ST-Link 部分对其进行闪存。我的观点是,如果您有“未检测到 ST-Link”,我很确定,问题不是来自微控制器部分,而是来自 ST-Link 部分。而且由于您在安装 openocd 之前确实说过它可以工作,因此我建议 W10 中的驱动程序部分可能是您问题的根源。

尝试通过设备管理器卸载与 STM32 相关的所有内容(我的意思是所有内容)(openocd、STM32 ST-Link Utility 及其驱动程序)。

仅重新安装 STM32 ST-Link 实用程序(如果您确实正确卸载了驱动程序,它应该在设置过程中询问您安装驱动程序的权限)并尝试连接您的电路板。

您还可以尝试移除板上的 SWD 跳线(连接器 CN2),以将 ST-Link 与内置微控制器部件分离。由于 ST-Link 部分是独立的,它仍然会被 STM32 ST-Link Utility 检测到(但如果您想实际对微控制器进行编程,则必须将跳线放回原处)。

于 2017-06-23T11:57:59.300 回答
1

根据我糟糕的经验,当您断开连接或其他程序正在使用 ST-LINK 时,STM32 实用程序中的“未检测到 ST-LINK”消息会显示。因此,如果在安装 OpenOCD 后开始出现这种情况,请尝试卸载它并重试(可能使用“重置下连接”选项?)。

供您参考。当您将电缆插入 PC 并且电路板已打开电源时,然后在设置(STM32 Utility)中您可以看到可用的 ST-Links(甚至被阻止)。这是 ST-Link 被阻塞时的示例

于 2017-06-23T09:20:12.313 回答
0

刚碰到这个。问题归结为使用 nucleo 板并尝试使用旧版本的 ST-LINK 与它们交互(ST 搜索 ST-Link 的第一击导致我找到 stsw-link0004,它没有安装正确的驱动程序)。为什么他们不将您指向最新的最伟大的第一,谁知道。

每当我尝试安装驱动程序时,我只能选择 USB 复合设备作为兼容驱动程序,尽管反复卸载/重新安装 stlink0004。

您需要安装最新的 st-link,例如 stsw-link0009(或更新版本)。

  1. 卸载设备(设备管理器在 USB 复合设备下)
  2. 卸载 ST-LINK
  3. 断开核。
  4. 重启。
  5. 安装 ST-link (stsw-link0009)
  6. 提示应该让您安装 3 个以上的驱动程序。不只是2。
  7. 插上电源。瞧。
于 2021-01-18T04:35:43.280 回答