解决多种原因导致的STM32芯片被锁定
stm32cubeMX中Debug方式设置错误导致锁定芯片
昨天用clion和stm32cubeMX调试。创建好Project之后,忘记在cubeMX,SYS选项卡中选择DEBUG为Serial Wire。然后直接在clion中下载程序。然后下载失败,芯片锁了。我的daplink和jlink都认不出来了。
购买到二手拆机片
这段时间,芯片价格涨价。买了几个二手拆机片,都是设置了只读,或者是还有程序在芯片里跑。我直接用daplink下载程序,只是提示下载失败。我不太懂DAPLink的使用。插上JLink后,在Keil中的Debug选项卡中识别到芯片之后,弹出: 出现这个,应该有这几种可能
- 芯片坏了
- 芯片读保护
- 芯片焊接有问题,NRST复位按钮那里有问题
解决方法
下载安装JLink的工具包https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack
Debug方式设置错误导致锁定芯片
打开J-Flash Lite选择对应芯片,我的是STM32F103C8。之后,点Erase Chip。是不行的,似乎不能Reset芯片。 所以之后手动,点了Erase Chip,快速多次按PCB上的Reset按钮,提示Reset 🆗马上停下,这样就可以清空芯片。芯片也可以被识别了。
购买到二手拆机片
打开J-Flash V6.98a,Create new project
选择你对应的芯片
连接MCU
擦除芯片
先解锁芯片,再擦除。
一般到这就修好了,不然可能芯片坏了(电路没焊接错的话)
其他情况
打开STM32 Unlock 看到命令行窗口,输入你使用的芯片系列对应的数字。