W25Q128频繁存贮数据的问题??坛友,原子哥帮忙啊

2019-07-21 08:47发布

大家好,我现在的项目,使用一片16M 的 SPI Flash W25Q128,来存贮我得到的传感器数据,我每次写16个字节,但现在遇见一个问题,就是一旦掉电,系统重新启动时,我必须要知道已经写到哪个位置了,该从哪里写了..

我是这样想的:
所以我必须建立一个计数变量cnt,来记录写了多少次了,下次就写cnt*16, 这个变量要是存到Flash的一个扇区的一个地址的话,就要擦写16*1024*1024/16 = 1024*1024 = 1048576次,那么Flash这个地址肯定爆了,如果要存到不同的地址,还要开辟一个32位的变量,因为毕竟要存1048576 = 0x100000次,而且每存一次还要写入32位4个字节,那么我存1048576 次,就需要1048576 *4=4194304字节的空间,我汗,1024个扇区啊,严重浪费,并且即使这样的话,开机还要遍历着找这个记录变量,耗费好多时间,不知有什么好办法???


大家有谁做过吗,帮想想办法,呵呵,谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
stonenth
1楼-- · 2019-07-21 10:59
将要写的地址保存到备份寄存器不就好了
总在怀远
2楼-- · 2019-07-21 13:38
回复【楼主位】zxcmcu:
---------------------------------
我没看懂为什么要擦写这么多次,我也用128来存储传感器的数据,直接覆盖就可以了。
正点原子
3楼-- · 2019-07-21 18:09
回复【楼主位】zxcmcu:
---------------------------------
如果不能提前判断断电,用铁电存储器是你的唯一选择。
八度空间
4楼-- · 2019-07-21 19:23
回复【楼主位】zxcmcu:
---------------------------------
直接覆盖,你是用波动开关来控制MCU电源的?还是通过软件来关机的,如果你是通过MCU检测一个轻触按键关机的话,就可以提前知道关电,可以在这个时候保存数据
zxcmcu
5楼-- · 2019-07-22 01:07
 精彩回答 2  元偷偷看……
zxcmcu
6楼-- · 2019-07-22 05:50
回复【2楼】总在怀远:
---------------------------------
系统掉电再上电的话,你不判断将要写的地址吗?

一周热门 更多>