打印
[STM32F4]

如何在读取flash时,判断数据已经读完?

[复制链接]
2145|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkuzhx|  楼主 | 2017-3-17 11:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的是F401RE内部flash的sector4~7,作为我写入用户数据的空间。

现在读写操作都已经初步调试完成了。但是由于我每次上电后写入的数据长度都是不定的,而且是随时可能掉电,所以不能记录写入的数据长度。

那么问题来了,当我需要读取数据并通过串口传送出来的时候,我只能从sector4开始读,我不知道什么时候就把我之前一次写入的数据读完了,所以只能一直读下去,直到把sector7都读完为止。
有没有什么方法可以判断前一次写入的数据已经被读完了呢?
评分
参与人数 1威望 +1 收起 理由
哈哈张 + 1 淡定
沙发
mmuuss586| | 2017-3-17 12:18 | 只看该作者
你要自己定协议,做些处理,要不然怎么知道啊

使用特权

评论回复
板凳
pkuzhx|  楼主 | 2017-3-17 13:36 | 只看该作者
mmuuss586 发表于 2017-3-17 12:18
你要自己定协议,做些处理,要不然怎么知道啊

嗯,好吧。
我还以为会有一些特殊、简便的处理方法。

使用特权

评论回复
地板
cy8051| | 2017-3-17 14:47 | 只看该作者
简易加个电池,用内部的BKP->DR1等,这样你可以重复多次读写不受影响。

使用特权

评论回复
5
pkuzhx|  楼主 | 2017-3-17 14:50 | 只看该作者
cy8051 发表于 2017-3-17 14:47
简易加个电池,用内部的BKP->DR1等,这样你可以重复多次读写不受影响。

是AC-DC供电的,不能加电池,随时可能拔电的

使用特权

评论回复
6
kkzz| | 2017-3-17 21:35 | 只看该作者
如果数据有长度,读完就完事了。

使用特权

评论回复
7
kkzz| | 2017-3-17 21:42 | 只看该作者
可以将写入的地址保存到Flash首位。

使用特权

评论回复
8
pkuzhx|  楼主 | 2017-3-18 09:45 | 只看该作者
kkzz 发表于 2017-3-17 21:35
如果数据有长度,读完就完事了。

嗯,现在就是先写入数据长度,再写入相应长度的数据

使用特权

评论回复
9
shcshc1234| | 2017-3-18 10:41 | 只看该作者
我都是加一个大电容加在3.3Vldo之前

然后检测电容电压 如果掉电乱七八糟外设关了专心写flash
反正写起来很费电
并且电源要稳定否则容易写错

使用特权

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

本版积分规则

个人签名:原来可以设置签名档啊!

45

主题

730

帖子

6

粉丝