我有一个核心stm32f401RE板,它在大多数情况下一直工作正常。最近,我按照书中的教程"掌握了stm32",其中说安装openocd。在此之前我一直在跟踪,我已经能够连接到我的电路板并且没有问题地闪烁它。在试图让openocd工作之后,这已经不可能了。每次我尝试连接到我的主板时,我只会收到以下错误消息:
"未检测到ST-LINK"。
我尝试过多次更新驱动程序,重启电路板,重新安装ST-LINK Utility,切换USB电缆,重置电路板并重新安装所有内容,我也尝试了按住重置按钮的技巧试着擦掉芯片。到目前为止,遗憾的是,这一切对我都没有用。下面的链接是我的董事会的照片:
我在桌面上使用Windows 10作为我的操作系统,我在我的主板上使用FreeRTOS。以下是我的设备管理员图片的链接:
我还尝试使用ST-Link升级更新我板上的固件,但没有运气。尝试此操作时,我要么没有选择我的设备的选项(使用.jar应用程序时),要么在使用.exe应用程序时,我只是收到以下错误消息:
"未检测到ST-Link设备" "请连接它,然后重试"
我无法在任何地方找到解决方案,所以我希望你们能提供帮助!如果需要更多相关信息,请告诉我。非常感谢你。
答案 0 :(得分:1)
如其他答案中所述,该问题几乎可以肯定是由于有竞争的驱动程序(例如libusb)控制了设备。
但是,假设您之前已经安装了一次驱动程序,则无需“卸载并重新安装所有程序”来选择正确的驱动程序。此外,重新安装过程很可能无济于事,因为卸载程序通常不会卸载驱动程序,而Windows会继续偏爱相同的错误驱动程序。
相反,打开“设备管理器”,找到STM32 STLink设备,双击以打开“属性”对话框。然后单击“更新驱动程序”,然后单击“浏览计算机以获取驱动程序软件”,然后单击“让我从计算机上可用的驱动程序列表中进行选择”,您应该会看到类似的内容:
您看到在此示例中,系统上至少有四个可用的驱动程序很乐意为设备提供服务。前两个是通用的libusb驱动程序,并非特定于加密狗(如果我没记错的话,OpenOCD乐于使用其中任何一个)。但是,ST-Link实用程序需要由STM开发的专用驱动程序-这是我图片中下面的两个条目。如果看不到这些内容,请尝试重新安装ST-Link实用程序(无需卸载任何内容),或者仅从STM网站下载driver。
您现在可以单击此列表中的首选驱动程序,并用它替换之前分配给设备的任何驱动程序。
答案 1 :(得分:0)
根据我的不良经验,当您断开连接或其他程序正在使用ST-LINK时,STM32 Utility中会显示“未检测到ST-LINK”消息。因此,如果在安装OpenOCD后发生这种情况,请尝试卸载并重试(可能选择“重置后连接”?)。
供您参考。当您将电缆插入PC并且电路板已打开电源时,在设置(STM32 Utility)中您可以看到可用的ST-Links(甚至被阻止)。 Here is example when ST-Link is blocked
答案 2 :(得分:0)
从我所学到的知识(但每个人都能纠正我:)),你的董事会分为两部分:
ST-Link部分用于闪存微控制器,可用于通过SWD闪存任何其他STM32F4器件。随你的照片:
STM32 ST-Link Utility使用电路板的ST-Link部分进行闪光。我的观点是,如果你有“没有检测到ST-Link”,我相信这个问题不是来自微控制器部分,而是来自ST-Link部分。既然你在安装openocd之前确实说它有效,我会建议W10中的驱动程序部分可能是你问题的根源。
尝试卸载与STM32(openocd,STM32 ST-Link实用程序及其驱动程序通过设备管理器)相关的所有内容(我的意思是一切)。
仅重新安装STM32 ST-Link实用程序(如果您确实正确卸载了驱动程序,它应该在设置期间询问您是否允许安装驱动程序)并尝试连接您的主板。
您也可以尝试移除电路板上的SWD跳线(连接器CN2),将ST-Link从内置微控制器部件上拆下。由于ST-Link部分是独立的,它仍然会被STM32 ST-Link Utility检测到(但如果你想对微控制器进行实际编程,你必须将跳线放回去。)
答案 3 :(得分:0)
刚遇到这个。问题归结为使用核电路板并尝试使用旧版本的 ST-LINK 与它们连接(ST 搜索 ST-Link 的第一次命中使我找到了 stsw-link0004,它没有安装正确的驱动程序)。为什么他们不先给你指出最新最伟大的,谁知道呢。
每当我尝试安装驱动程序时,尽管反复卸载/重新安装 stlink0004,但我只能选择 USB Composite 设备作为兼容驱动程序。
您需要安装最新的 st-link,例如stsw-link0009(或更新版本)。