2

尝试从 Atollic TrueStudio 9.3 编程和调试 STM32F103 (Bluepill) 我收到以下消息:

STMicroelectronics ST-LINK GDB 服务器。版本 5.1.0 版权所有 (c) 2018,意法半导体。版权所有。

使用以下选项启动服务器:持久模式:禁用日志记录级别:1 侦听端口号:61234 状态刷新延迟:15 秒详细模式:禁用 SWD 调试:启用

供应商 = 0x55

初始化 ST-LINK 设备时出错。原因:ST-LINK:无法验证ST设备!中止连接。

尝试在 St-Link 实用程序中做同样的事情没有任何问题(也可以擦除和编程):

在此处输入图像描述

这可能是什么问题,为什么验证有问题?

Tnx 提前帮助!

4

2 回答 2

4

问题是BluePill上STM32F103的ID和定义调试器配置文件的ID不一样。为了保持低价,BluePills 上通常带有假冒 IC,但这些 IC 与正品 IC 的 ID 不同。

下面的说明/视频是为 STM32CubeIDE 制作的,但它们也适用于 TrueSTUDIO。

关于解决方法的视频:https ://youtu.be/bJYp8o7FoYo

  1. 打开调试配置窗口 打开调试配置窗口

  2. 在 Debug Probe 下拉列表中选择 ST-LINK(OpenOCD) 在 Debug Probe 下拉列表中选择 ST-LINK(OpenOCD)

  3. 搜索 stm32f1x.cfg 文件 C:\ST\STM32CubeIDE_1.2.0\STM32CubeIDE 并使用记事本打开它。

  4. 搜索此行 搜索此行

  5. 现在将 ID 从 0x1ba01477 更改为 0x2ba01477,如下所示 现在将 ID 从 0x1ba01477 更改为 0x2ba01477,如下所示

  6. 保存文件,现在调试应该可以工作了

于 2020-05-14T17:06:08.153 回答
0

该解决方案也适用于像 CH32F103 这样的克隆芯片,在某些情况下在 BluePill 上

另一种解决方案是更改“stm32f1x.cfg”中的参数,用文本编辑器打开它并找到这一行:swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

在行尾将“$_CPUTAPID”更改为零,它应该是这样的: swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0

之后:打开如上图所示的调试配置窗口,在调试探针下拉列表中选择“选择 ST-LINK(OpenOCD) ”,然后单击“显示生成器选项...</strong>”并在模式设置中更改“重置模式”为“ <strong>软件系统重置”。

这两种方法都有效,我已经用 CubeIDE 和 CH32f103c8t6 对它们进行了测试。

于 2021-03-24T06:10:23.033 回答