ST意法半导体
直播中

刘洋

10年用户 1130经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

为什么Blue Pill板在使用STM32CubeIDE进行闪烁和调试后没有响应呢

ST-Link V2,STM32F103C6T6A“蓝色药丸”,简单程序(闪烁 LED 版本),将代码推送到 CPU 后(使用 STM32CubeIDE 1.9.0 和当前固件官方 ST-LINK V2),电路板出现“变砖”并且不响应 ST-LINK V2。
我需要一种方法来确定电路板是否报废,或者可以从这种情况下恢复。
收到(“blue pill”板和 ST-LINK V2 编程器)后,我使用官方 ST-Link V2 和包装板中的新鲜板(闪烁)预先测试了“blue pill”板-LED 程序)。我可以读出 32768 字节的闪存,保存到文件,进行完全擦除,然后用之前保存的(从工厂)32768 字节的图像重写设备(它只是使 GPIOC 位 13 上的 LED 闪烁。)
这是问题开始的地方:
编写了我自己的“闪烁 LED”版本以验证我可以使用 STM32CubeIDE 完成编写构建程序循环(使用官方 ST-Link V2 作为克隆 ST-LINK 中的固件无法更新),并找到一旦我的小程序(如下)被写入蓝色药丸板(仅使用 STm32CubeIDE 和官方的 ST-Link V2),该板就会出现“变砖”,并且不再响应 ST-LINK V2 设备(无论是官方的一个或克隆。)
由于我尝试了一些尝试来隔离我认为是 ST-LINK 设备、互连布线或程序的问题,我已经成功地“变砖”了我的所有五个“蓝色药丸”板(这是我预期的最后一件事)是一个导致不可恢复状态的微不足道的程序,因为我花了几个月的时间使用 STM32CubeIDE 和 F0 Discovery 板并取得了非常成功。
在找到恢复方法之前,我一直处于困境。
---------------------------------------------- ---------------------------------------------- --------------
该程序(插入到 STM32CubeMX 的输出中)只有这个:
/* 初始化所有配置的外设 */
MX_GPIO_Init();
/* 用户代码开始 2 */
/* 用户代码结束 2 */
/* 无限循环 */
/* 用户代码开始时 */
而 (1)
{
    GPIOC->BSRR = GPIO_BSRR_BS13;
   /* 用户代码结束 */
   /* 用户代码开始 3 */
}
---------------------------------------------- ---------------------------------------------- --------------
下面是构建和编程周期的记录(来自 STM32CubeIDE),在我告诉调试器恢复执行后出现故障:
STMicroelectronics ST-LINK GDB 服务器。版本 6.1.0
版权所有 (c) 2022,意法半导体。版权所有。
使用以下选项启动服务器:
       持久模式:禁用
       记录级别:1
       监听端口号:61234
       状态刷新延迟:15s
       详细模式:禁用
       SWD 调试:已启用
       InitWhile:启用
等待调试器连接...
调试器已连接
等待调试器连接...
调试器已连接
等待调试器连接...
     ---------------------------------------------- ------------------
                      STM32CubeProgrammer v2.10.0                 
     ---------------------------------------------- ------------------
日志输出文件:   
c:usersuserappdatalocaltempstm32cubeprogrammer_a09124.log
ST-LINK 序列号:56FF66066683565235571987
ST-LINK固件:V2J39S7
木板      :  -
电压:2.95V
SWD 频率:4000 KHz
连接模式:Under Reset
复位方式:硬件复位
设备 ID:0x412
修订 ID:修订版 A
设备名称:STM32F101/F102/F103低密度
闪存大小:32 KB
设备类型:单片机
设备 CPU:Cortex-M3
BL 版本 : --
内存编程...
打开并解析文件:st-link_gdb_server_a09124.srec
文件:st-link_gdb_server_a09124.srec
大小:1.15 KB
地址:0x08000000
擦除段0对应的内存:
擦除内部存储器扇区 [0 1]
正在下载:
文件下载完成
下载操作期间经过的时间:00:00:00.195
正在验证...
下载验证成功
(此时,我告诉 STM32CUBEIDE 调试器继续)
执行“cont”命令时出错...
目标没有响应,正在重试...
无法从目标读取寄存器
目标没有响应,正在重试...
---------------------------------------------- ---------------------------------------------- --------------
重新启动 STM32CubeIDE,告诉它运行程序(在调试模式下):
最终启动顺序错误:
启动 GDB 服务器失败
启动 GDB 服务器失败
初始化 ST-LINK 设备时出错。
原因:(4) 未在目标上找到设备。
---------------------------------------------- ---------------------------------------------- --------------
现在目标蓝色药丸设备出现“变砖”,我切换到 STM32CubeProgrammer 并且无法完成目标连接序列(尝试使用正常的软件重置选项以及硬件重置选项,按下板上的 RESET 按钮以尝试建立连接,但是,在释放 RESET 按钮后,会出现 (DEV_TARGET_HELD_UNDER_RESET)。
11:22:26:ST-LINK 序列号:56FF66066683565235571987
11:22:26:ST-LINK 固件:V2J39S7
11:22:26:董事会:--
11:22:26:电压:3.14V
11:22:26:错误:未找到 STM32 目标!
11:22:33:ST-LINK 序列号:56FF66066683565235571987
11:22:33:ST-LINK 固件:V2J39S7
11:22:33:董事会:--
11:22:33:电压:3.18V
11:22:34:SWD 频率:4000 KHz
11:22:34:连接模式:正常
11:22:34:重置模式:硬件重置
11:22:34:设备 ID:0x412
11:22:34:修订 ID:修订版 A
11:22:34:ST-LINK 序列号:56FF66066683565235571987
11:22:34:ST-LINK 固件:V2J39S7
11:22:34:董事会:--
11:22:34:电压:3.19V
11:22:34:错误:未找到 STM32 目标!
11:22:39:ST-LINK 序列号:56FF66066683565235571987
11:22:39:ST-LINK 固件:V2J39S7
11:22:39:董事会:--
11:22:39:电压:3.16V
11:22:41:错误:ST-LINK 错误(DEV_TARGET_HELD_UNDER_RESET)










回帖(1)

王博

2022-12-9 15:03:41
我做了类似的事情 - 让我的 Blue Pill 板在使用 STM32CubeIDE 进行闪烁和调试后没有响应。原因是在我的项目中,我没有在 System Core/SYS 参数下打开 STM32CubeIDE 中的串行线调试。解决方案是将 Blue Pill 板上的 2 个跳线从默认位置(都靠近 USB 连接器)移动到相反的位置(都靠近处理器芯片),按下重置按钮,然后重新闪烁。然后将跳线移回原来的位置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分