OpenEdv-开源电子网

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

关于W25X16存储问题 请教高手

[复制链接]

71

主题

183

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2013-1-29
在线时间
1 小时
发表于 2013-4-17 13:36:58 | 显示全部楼层 |阅读模式
本人用W25X16存储数据 
要求 单片机存储数据到W25X16,存储一分钟进行一次  如果存储过程中 单片机突然断电(假设此时的存储地址是X) 则要求单片机上电后,从上次掉电时刻的地址(即地址X 接着存储)
这种情况的实现, 就需要单片机实时的保存最后存储在W25X16上的数据数据存储在那个地址
 单片机上电后,读出掉电前数据最后一次存储的地址,然后接着这个地址向下存储数据
遇到的问题如下:
如果单片机实时保存最后一次存储的数据的地址的话,哪么应该将这个地址存储在W25X16中(单片机上电后,再次读出该地址,然后紧接着该地址向下存储),但是W25X16存储数据前要先擦除,采用实时保存的话  就需要不断的擦除和写入W25X16的某一扇区,这种方法显然行不通。
请问 有什么别的方法能够将最后一次记录在W25X16中的数据地址保存下来,以方便单片机再次上电后,紧接着这个地址再次向W25X16上存储数据?? 求高手解释。
 付: 本人不想把这个地址保存在STM32自带的备份区域,因为该备份区域已经被我的其他数据占用。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-17 14:20:13 | 显示全部楼层
每分钟一次,也很受伤啊...
直接掉电前存储一次就可以了.
不过需要做好掉电检测,可以考虑用超级电容,这个掉电后,给MCU供电还可以持续比较长时间.
另外一个办法,就是可以考虑用铁电存储,这玩意,基本写不坏.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

71

主题

183

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2013-1-29
在线时间
1 小时
 楼主| 发表于 2013-4-18 08:55:12 | 显示全部楼层
回复【2楼】正点原子:
恩 谢谢你 这个问题我已经基本解决了 我用W25X16的最后一块存储记录的次数 第1字节存1 第二字节存2  这样在上电后 读取W25X16的最后一块 当读到0xff时 证明其上一个字节是掉电前存储的总次数 然后根据存储总次数 就能推理出 当前存储的位置
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-21 05:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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