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

STM32CubeProgrammer可读不可写求助——STM32F103CBT6编程故障

STM32F103CBT6编程验证失败、选项字节修改异常及LOCKUP状态解决方法

核心问题分析

新出厂的STM32F103CBT6默认可能开启全Flash写保护,同时选项字节配置异常,加上NRST悬空导致复位时序不稳定,最终引发编程验证失败、选项字节修改失败及LOCKUP状态。

分步解决步骤

1. 优化复位信号稳定性

  • 尽管STM32F1的NRST引脚内部自带上拉电阻,但悬空状态易引发复位信号波动。建议临时为NRST引脚外接10kΩ上拉电阻到3V3,或直接连接ST-LINK的NRST引脚到MCU的NRST引脚,确保复位时序可靠(这是修改选项字节和解锁的关键前提)。

2. 强制解锁Flash写保护

方法一:图形界面操作

连接MCU后,进入「擦除与编程」选项卡,点击**「全芯片擦除」**(注意是全芯片擦除,而非仅擦除Flash),该操作会自动解锁所有写保护区域。

方法二:命令行操作(更可靠)

打开STM32CubeProgrammer的命令行工具,执行以下命令:

STM32_Programmer_CLI -c port=SWD -u

此命令将强制解锁Flash和选项字节的保护限制。

3. 修复选项字节配置

  • 解锁成功后,进入「选项字节」选项卡,点击**「默认值」**按钮,恢复芯片出厂默认的选项字节配置。
  • 确认nRST_STDBY、nRST_STOP等选项值为0x0(复位使能状态),随后点击「编程选项字节」完成配置写入。

4. 验证编程功能

  • 选项字节修复完成后,重新尝试下载程序并勾选「验证编程」,此时应能正常完成编程与验证流程。
  • 若仍出现异常,检查3V3电源稳定性:为MCU的3V3引脚添加100nF陶瓷电容+10uF电解电容到GND,滤除电源波动干扰。

5. 解除LOCKUP状态

LOCKUP是内核因Flash访问受限或选项字节异常进入的错误状态,完成上述解锁与选项字节修复后,点击STM32CubeProgrammer中的「复位」按钮,MCU即可退出LOCKUP状态,恢复至正常的Halted或Running状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:48:27