解决多种原因导致的STM32芯片被锁定

3 minute read

stm32cubeMX中Debug方式设置错误导致锁定芯片

昨天用clion和stm32cubeMX调试。创建好Project之后,忘记在cubeMX,SYS选项卡中选择DEBUG为Serial Wire。然后直接在clion中下载程序。然后下载失败,芯片锁了。我的daplink和jlink都认不出来了。

购买到二手拆机片

这段时间,芯片价格涨价。买了几个二手拆机片,都是设置了只读,或者是还有程序在芯片里跑。我直接用daplink下载程序,只是提示下载失败。我不太懂DAPLink的使用。插上JLink后,在Keil中的Debug选项卡中识别到芯片之后,弹出: image.png 出现这个,应该有这几种可能

  1. 芯片坏了
  2. 芯片读保护
  3. 芯片焊接有问题,NRST复位按钮那里有问题

解决方法

下载安装JLink的工具包https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack image.png image.png

Debug方式设置错误导致锁定芯片

打开J-Flash Lite选择对应芯片,我的是STM32F103C8。之后,点Erase Chip。是不行的,似乎不能Reset芯片。 所以之后手动,点了Erase Chip,快速多次按PCB上的Reset按钮,提示Reset 🆗马上停下,这样就可以清空芯片。芯片也可以被识别了。

购买到二手拆机片

打开J-Flash V6.98a,Create new project

image.png

选择你对应的芯片

image.png

连接MCU

image.png

擦除芯片

先解锁芯片,再擦除。 image.png

一般到这就修好了,不然可能芯片坏了(电路没焊接错的话)

其他情况

image.png 打开STM32 Unlock 看到命令行窗口,输入你使用的芯片系列对应的数字。