OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2546|回复: 0

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

[复制链接]

1

主题

13

帖子

0

精华

新手上路

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

初始化后的主程序

初始化后的主程序
微信截图_20200710130548.png



然后是我的串口打印数据

串口打印1

串口打印1

串口打印2

串口打印2



原子哥可以看到,我在串口打印均没有出现报错(擦除失败,写入失败等)。程序的数组是正确无误的,但是写入的FLASH的地址的数据,除了第一次写入是正常的以外,其他的均不正常。内部FLASH在没有任何数据的情况是全1的,擦除后也应该是全1。数据在写入后某些位置变为0。程序第一次写入数据是全部写进去了的。那么可以判断FLASH的写数据函数应该是没有问题。擦除后也不是完全是0,也是擦了很多遍才是全0,所以我判断是FLASH擦除函数有问题。但是我没找到解决的方案。


另外请问一下原子哥一个问题:
1.在F103系列,FLASH扇区都是1KB或者2KB一页,在F4中大小容量均变了,那么我写入一个数据就需要擦除16kb的大小吗?或者说是我需要单独留出16kb的大小来存放一部分配置文件吗?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 23:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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