刚打仗这类问题也走过不少弯路。一开始以为是芯片破坏了,想要换芯片,结果换了芯片后还是提示缺点,又以为是软件,末了创造也不是软件问题。
实在这是由于改变选项字节时操作缺点导致芯片锁住了。我们一起来看看选项字节部分datasheet怎么说:

我们在对选项字节OPT操作时须要进行解锁,先后向FLASH_DUKR寄存器写入这两个密匙(顺序不能反,反了的话芯片就锁住了)。

do
{
FLASH->DUKR = 0x56;
FLASH->DUKR = 0xAE;
} while(!(FLASH->IAPSR & 0X08));
解锁之后就可以向选项字节OPT写入数据了,否则直接向OPT写入数据是写不进去的。
然而,如果我们由于代码出错,导致芯片被锁,该怎么处理呢?这就可以用我们在上篇文章中
首先我们利用IAR天生任意一片代码的扩展名为.s19的文件,配置如下:
如上图选择Motorola模式,把扩展名改为.s19,编译天生这个扩展名的文件,然后打开STVP,找到该文件,如下:
之后把稳配置选项字节为关闭保护,步骤如下图:
通过STVP的烧录,相称于强行把CPU内部flash选项字节给刷写回来。这样我们的单片机就可以再次正常利用啦。







