STM32
直播中

梅利号

8年用户 1494经验值
擅长:可编程逻辑
私信 关注
[问答]

STM32G0B1RET6芯片FLASH擦除不了的原因?

最近尝试用G0芯片对FLASH进行擦除,发现擦除不了,代码如下:

从J-LINK回读结果来看,并未按照设想进行FLASH擦除,如下图

就算我增加了擦除页数,仍是这样的结果,请问给为大神有什么办法解决呢,求助各位大佬


回帖(1)

龙献益

2024-5-27 17:23:35
STM32G0B1RET6芯片FLASH擦除失败可能有以下几个原因:

1. 检查FLASH擦除代码是否正确:请确保您的代码正确地设置了FLASH擦除参数,例如页地址、页数量等。同时,确保您已经正确配置了时钟系统,以便FLASH控制器能够正常工作。

2. 检查FLASH保护状态:STM32G0系列的FLASH可能受到保护,导致无法擦除。请检查FLASH保护位(如FLASH_OPTR寄存器中的相关位)是否被设置,如果是,请将其清除。

3. 检查FLASH擦除操作是否被禁止:在某些情况下,FLASH擦除操作可能被禁止。请检查FLASH_ACR寄存器中的LATENCY位是否设置为正确的值,以确保FLASH擦除操作不被禁止。

4. 检查J-Link连接和配置:请确保您的J-Link调试器与STM32G0B1RET6芯片之间的连接正确,并且J-Link软件配置正确。如果连接或配置有问题,可能导致FLASH擦除失败。

5. 检查电源电压:STM32G0系列的FLASH擦除操作对电源电压有一定要求。请确保您的电源电压在规定的范围内,否则可能导致FLASH擦除失败。

6. 检查FLASH质量问题:如果以上原因都排除了,那么可能是FLASH本身存在质量问题。这种情况下,您可能需要联系芯片供应商进行进一步的检查和处理。

建议您按照以上步骤逐一排查问题,找到导致FLASH擦除失败的原因,并采取相应的解决措施。希望这些信息对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分