STM32 & ST-LINK - 编程成功后无法连接到 MCU

电器工程 stm32 编程 闪光 st链接
2022-01-18 07:47:46

我已经用 STM32F7-45VGT6 构建了自己的开发板。我已经用 ST-LINK v2(不是原来的那个)成功地对其进行了编程,现在我什至无法连接到 MCU。

我使用 ST 和 SWD 界面的 ST-Link Utility。可能是我使用 SWD 引脚作为输出,在我的代码中我将它们设置为 GPIO 输出。可以吗?

尽管如此,我将我的重置引脚连接到 GND 并在 ST-Link 实用程序中设置“重置下连接”选项,但它不起作用......我该怎么办?

在网上,我找到了一些关于使用BOOT0 Pin,但我不知道具体...

4个回答

我设法解决了这个问题。如果有人遇到类似的问题,这就是我所做的:

我使用了 ST-Link v2 和 ST-Link Utility。在设置中,我设置了“重置下连接”和SWD接口(我不确定频率)。
然后我按下板上的复位按钮并单击“目标”->“擦除芯片”,然后单击后我释放了按钮-它擦除了芯片,所以我现在可以重新编程我的 MCU。


无论如何,如果您需要使用 SWD 引脚作为输出,则在程序开始时添加一些延迟或使用一些跳线来禁用/启用将这些引脚设置为输出。

为了在复位状态下连接工作,ST-Link 必须控制复位引脚,如果将其接地,ST-Link 就没有机会让目标运行并访问它。


如果在上电期间将 BOOT0 引脚拉高,MCU 将启动到内部引导加载程序,您可以使用多种串行协议进行访问(有关详细信息,请参阅参考手册)。

在引导加载程序内部,SWD 引脚应该可以访问,但我对此不是 100% 确定的。

ST Flash Loader Demonstrator是一种工具,可让您使用 UART 接口对微控制器进行擦除/编程。如果您无法访问微控制器的任何 UART,则此解决方案将不适合您。

如果您使用的是 stmcubemx,您需要在 stmcube pinout 选项卡上配置串行线。在 pinout 选项卡上,单击 SYS 并将调试选项更改为串行线。它解决了我的问题,也许也解决了你的问题。

我将一些代码下载到我自己的 STM32F427 板上。然后我无法再使用 ST-LINK Utility 连接到我的开发板。我认为我的代码弄乱了调试端口引脚配置(?无法确认)。我所做的是建立连接并重新编程我的电路板:

  1. 打开 ST-LINK 实用程序并准备好在目标菜单中“连接”。
  2. 为您的电路板供电(在我的情况下,我使用 USB 电缆)并同时单击 ST-LINK 实用程序中的“连接”。

我用这个技巧恢复了 2 个板。希望这可以帮助。——鲍勃