打印
[STM32F1]

stm32的flash存储

[复制链接]
1802|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangtao8067227|  楼主 | 2015-1-24 17:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在用stm32做一带存储功能的电路板,想通过芯片自带flash实现存储。我是想实现这样的功能:擦除一页的flash作为存储空间,采集一组数据就存在这个空间内,当在一页存储空间存满后,擦除最后一组数,再存入新数据。
但是,在我实际编写代码的过程中发现,stm32的flash只能一页为单位进行擦除,那么在我将一页存储空间数据存满时,需要进行擦除才能写入,那么在进行擦除时这一页的存储数据不是都丢失了么?那么怎么才能实现呢?请大家指导一下,推荐一些flash的源代码或者是存储方法的书籍就更好了。
沙发
mmuuss586| | 2015-1-24 17:37 | 只看该作者
删除前,你可以把这页的数据都读出来啊;
删除后,再重新写回去;

使用特权

评论回复
板凳
wangtao8067227|  楼主 | 2015-1-24 18:01 | 只看该作者
mmuuss586 发表于 2015-1-24 17:37
删除前,你可以把这页的数据都读出来啊;
删除后,再重新写回去;

能不能这样操作,对指定地址进行擦除并写入数据?

使用特权

评论回复
地板
mmuuss586| | 2015-1-24 18:34 | 只看该作者
wangtao8067227 发表于 2015-1-24 18:01
能不能这样操作,对指定地址进行擦除并写入数据?

不行;

使用特权

评论回复
5
airwill| | 2015-1-24 19:51 | 只看该作者
FLASH 都是整页擦除的, 我觉得你可以在内存中开一个页面大小的数组空间, 等整个一页数组写满时再写入 FLASH 空间, 这样也可以避免过度擦写而数据 FLASH 提前失效的问题.

使用特权

评论回复
6
ddb_21ic| | 2015-1-25 11:42 | 只看该作者
AT24Cxx又不贵,前段时间遇到过,有些片子的FLASH数据偶尔丢失,头大。。。。还是EEPROM可靠些。

使用特权

评论回复
7
ticomi| | 2015-1-25 14:11 | 只看该作者
如果数据量不大建议采用EEPROM,成本上大约是1元钱左右!即可靠,也不受这些Flash擦除功能的限制!

使用特权

评论回复
8
zh113214| | 2015-1-25 17:08 | 只看该作者
可以加上一个电容,辅助作用吗?、

使用特权

评论回复
9
liuwanlihao1| | 2015-1-27 13:17 | 只看该作者
2楼正解,flash只能进行页擦除的……

使用特权

评论回复
10
wangtao8067227|  楼主 | 2015-1-27 13:35 | 只看该作者
查阅了多个资料后,我也感觉2号是合理的方案。但是个人感觉,底层的存储管理要想做的比较完善比较麻烦。比如:要存储800字节的数据,数据实现不断更新,每天更新100次,还要在调用数据时方便查询最近相关的数据,flash存储管理需要下大功夫才能实现

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

30

帖子

1

粉丝