FLASH擦除失败

2019-07-20 23:57发布

原子哥,我flash操作用的也是你的历程代码,然后写入某个区域时,写入一般都是十个字节以内,但是有的时候写入了读取出来还是前一次的数值,仿真调试时发现是擦除失败,什么原因会导致擦除失败?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
lvkanger
1楼-- · 2019-07-21 20:51
 精彩回答 2  元偷偷看……
516182660
2楼-- · 2019-07-21 22:44
即使更换了地址,还是有时写不进,这种不可预知的结果是非常严重
哆啦A萌
3楼-- · 2019-07-22 02:00
lvkanger 发表于 2018-7-26 09:56
擦除失败当然写不进去,这个函数看着好复杂,建议精简一下

用的就是原子哥的代码,错误原因是因为写入的时候返回了FLASH_ERROR_PG这个错误,在IAP升级大量写入数据时中途发生了这个错误
哆啦A萌
4楼-- · 2019-07-22 03:34
516182660 发表于 2018-7-26 10:22
即使更换了地址,还是有时写不进,这种不可预知的结果是非常严重

你看看你是不是因为FLASH_GetBank1Status()返回了错误
哆啦A萌
5楼-- · 2019-07-22 03:54
正点原子 发表于 2018-7-26 01:33
我们例程运行良好啊

原子哥,我在使用你的FLASH历程代码时(没有修改函数中的内容时),调试的时候发现写入的时候有的时候会触发FLASH_FLAG_PGERR错误,我做IAP时进行的是分包写入,每次调用写入函数时写入的大小是2K,如果在写入某个扇区前先清标志位FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);则不会再发生错误,但是我不是很清楚如果每步操作都没有错误为什么寄存器还会标记出这个错误呢?
516182660
6楼-- · 2019-07-22 05:08
 精彩回答 2  元偷偷看……

一周热门 更多>