STM32有时候会造成自锁。
自锁的原因有几个
1、程序里面使能了JTAG和SWD下载
2、BOOT脚配置问题:对于STM32往往都有些BOOT配置脚。因为BOOT脚的焊接或接触不良或者BOOT引脚没有配置正确**,导致很多问题。这种情况多表现在芯片功能时好时坏,或者部分芯片正常,部分芯片异常。
3、启动文件问题:经常因为选错了启动文件,导致程序无法正常运行,或者说调试时好好的,脱机运行就出鬼。这点在做不同系列芯片间移植时最容易碰到。
4、堆或栈越界溢出:这个也会导致芯片无法正常工作,调试时往往可能会有硬错提示。
5、电源问题:供电电压不稳,STM32内部存在保护检测,同样会进行芯片的自锁
对于STM32解锁方法如下:
把BOOT0和BOOT1跳成1和0,(这时候就看下STLink应该可以找到芯片),让内部程序不运行,然后再重新下载另外的程序,再改回BOOT1和0同样接地设置,便可以恢复正常。
如果板子上JTAG和SW调试电路都有的话,在其中一种方式导致锁死的情况下可以用另一种方式擦除恢复,而不必调整BOOT设置。