You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32G031J6M6仅可烧录一次固件问题求助

问题:STM32G031J6M6仅能单次烧录固件,STM32CubeIDE后续无法连接

硬件信息

  • MCU型号:STM32G031J6M6
  • 调试器:ST-Link V2 mini

连接方式

连接方式示意图1
连接方式示意图2

ST-Link V2 mini调试器

问题现象

烧录一次固件后,STM32CubeIDE无法连接到MCU,每次烧录新固件必须使用STM32 ST-LINK Utility擦除芯片。

可能的原因及解决方法

1. 固件代码禁用调试接口

STM32G0系列的SWD/JTAG调试接口可能在用户代码中被意外禁用,比如将SWDIO/SWCLK引脚配置为普通IO,或通过寄存器关闭调试功能。

  • 解决步骤:
    • 检查代码中DBGMCU_CR寄存器配置,确保调试相关使能位(如DBG_STOP、DBG_STANDBY)正确设置,且未关闭SWD接口;
    • 使用HAL库时,在CubeMX的「System Core」→「SYS」中,将「Debug」选项设置为Serial Wire,并确保代码中调用了对应调试使能函数;
    • 在STM32CubeIDE的运行/调试配置中,进入「Debugger」→「Startup」,勾选「Full chip erase」,每次烧录前自动全擦除芯片,避免禁用调试的代码残留。

2. 连接或供电异常

  • 检查SWDIO、SWCLK、GND引脚连接是否牢固,排除烧录后接触不良的情况;
  • 确认MCU供电电压稳定在2.0V~3.6V范围内,避免供电不足导致调试通信中断;
  • 更换质量可靠的USB线连接ST-Link,劣质线材易引发通信不稳定。

3. 芯片读保护(RDP)开启

若代码中开启了STM32的读保护功能(RDP级别1或2),会限制调试接口访问,导致烧录后无法连接。

  • 解决步骤:
    • 用STM32 ST-LINK Utility读取芯片RDP状态,若处于保护状态,执行全擦除操作解除保护;
    • 在CubeMX或代码中确保FLASH_OPTR寄存器的RDP位设置为0xAA(无读保护状态)。

4. ST-Link驱动或固件版本问题

  • 将STM32CubeIDE更新至最新版本,同时更新ST-Link固件:在IDE中打开「Window」→「Show View」→「ST-Link Debugger」,点击「Update ST-Link firmware」完成更新;
  • 检查电脑设备管理器中ST-Link驱动是否正常,若存在异常,重新安装官方驱动。

内容的提问来源于stack exchange,提问作者Sem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:32:29