野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17656|回复: 1

关于STM32F429ZIT6的FLASH擦除读写失败的问题

[复制链接]
发表于 2020-7-6 13:54:03 | 显示全部楼层 |阅读模式
因为项目需要,有一部分配置的数据需要保存到FLASH存储区。于是查看了官方的手册,STM32F429ZI是按照扇区划分,划分为Bank1和Bank2。其中每一个块又划分为12个扇区,4个16kb,1个64kb,7个128kb。我拟定将要存储的数据放到Bank1的第3个16kb的扇区中。即起始地址为0x08008000的FLASH位置。同时我也参考了官方的例程,但是擦除和写入数据过程均出现了很奇怪的问题。代码是用STM32CubemX生成,编译器是Keil5代码截取了关键部分和现象如下图。

[url=][/url]

[url=][/url]

[url=][/url]

这是串口打印的文件数据,除第一次擦除报错以外,其他的均没有报错,但是同时也除了第一次写入的数据是和逻辑一样,之后的数据写入也均出现了错误。也就是下载程序以后除了第一次写入正常以外,其他的写入都不对了。希望有人能为我解惑。
另外我还有一个问题想请教:
1.在F103系列,FLASH扇区都是1KB或者2KB一页,在F4中大小容量均变了,那么我写入一个数据就需要擦除16kb的大小吗?或者说是我需要单独留出16kb的大小来存放一部分配置文件吗?


QQ图片20200706135258.png
QQ截图20200706123642.png
QQ截图20200706123617.png
回复

使用道具 举报

发表于 2020-7-10 16:16:51 | 显示全部楼层
你自己代码可以将16KB划分多个数据块,写满了再擦写一次就行,读写判断一下当前在哪个数据块
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 14:21 , Processed in 0.029249 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表