如何使用外部 ST-Link 调试/编程 STM32F103 MCU?

电器工程 stm32 stm32f10x swd st链接
2022-01-02 00:45:52

我在自己的项目中使用 STM32F103 MCU,并想使用 STM32F411 Nucleo 板的 ST-Link 进行外部调试/编程。

我已将 CN2 跳线设置为 OFF,而我的实际问题在于 SWO (CN2) 的引脚排列。我如何进行如下:

  • PIN 1(SWO)是 VDD_Target
  • PIN 2 是 SWCLK
  • 引脚 3 为 GND
  • PIN 4 是 SWDIO
  • PIN 5 是 NRST
  • PIN 6 是 SWO

据我所知,我不应该使用上面的所有这些引脚。如,我已经连接

  • MCU 中的 PIN 2 到 PIN 37(或 PA14)
  • 引脚 3 到 GND
  • PIN 4 到 PIN 34(或 PA13)
  • 目标 MCU 中的 PIN 5 到 PIN 7 或 (RESET)。

不确定我是否应该连接 SWO 引脚,因为它设置为“保留”(为什么?)。此外,我给 MCU 的 VIN 引脚提供 3.3 V,这意味着我不需要连接 VDD(stlink 的 PIN 1)。

请参考我从官方数据表中获取的这张表:

在此处输入图像描述 在此处输入图像描述

这是 MCU 的一般引脚配置:

在此处输入图像描述

我已经用示波器和测试仪测试了“几乎”所有东西,一切似乎都很好。我在这里还缺少什么?我应该对 BOOT0 或 BOOT1 引脚做什么?

2个回答

首先,您是对的,如果您的电路板已经有电源电压源,您不必连接 ST-Link 的 VDD 引脚。

我建议您的第二件事是打开 STM32F411 Nucleo 板的参考手册并查看原理图。尤其是 ST-Link 连接到板上控制器的部分。

在此处输入图像描述

ST Microelectronics 将 SWCLK、SWDIO、NRST 和 SWO(当然还有 GND)连接到目标 MCU。额外的 SWO 引脚用于调试目的,您可以使用ST-Link Utilityprintf通过此引脚访问打印数据

Printf via SWO Viewer 显示目标通过 SWO 发送的 printf 数据。

所以我也可以推荐你连接 SWO,以后会有用。将您的 MCU 连接到 ST-Link,就像他们将 Nucleo 的 MCU 连接到它一样。

至于启动配置,有三个可选选项,最简单的是坚持使用主闪存并将 Boot0 连接到 GND,但我不知道您的要求,所以由您选择。

在此处输入图像描述

首先感谢大家的贡献。

经过两个不眠之夜和挣扎,我可以找出问题所在。问题出在我的定制板的引脚连接中:我认为在我的 MCU 中,引脚 9 (VDDA) 与引脚 24-36-48 短路,引脚 8 (VSSA) 与引脚 23-35-47 短路,但事实并非如此。

我需要给 VDDA 和 VSSA 再提供3.3VGND 然后st - link 开始工作。

解决方法:我用Maple Mini原理图来了解STM32F103的连接。事实证明,他们将 VDDA 与 VDD1、VDD2 和 VDD3 短路,将 VSSA 与 VSS1、VSS2 和 VSS3 短路。我想,我应该从命名 VSSA 中理解这一点,因为它不是 VSS0 或 VSS4。