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

[复制链接]
2462|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等,这样你可以重复多次读写不受影响。
 楼主| pkuzhx 发表于 2017-3-17 14:50 | 显示全部楼层
cy8051 发表于 2017-3-17 14:47
简易加个电池,用内部的BKP->DR1等,这样你可以重复多次读写不受影响。

是AC-DC供电的,不能加电池,随时可能拔电的
kkzz 发表于 2017-3-17 21:35 | 显示全部楼层
如果数据有长度,读完就完事了。
kkzz 发表于 2017-3-17 21:42 | 显示全部楼层
可以将写入的地址保存到Flash首位。
 楼主| pkuzhx 发表于 2017-3-18 09:45 | 显示全部楼层
kkzz 发表于 2017-3-17 21:35
如果数据有长度,读完就完事了。

嗯,现在就是先写入数据长度,再写入相应长度的数据
shcshc1234 发表于 2017-3-18 10:41 | 显示全部楼层
我都是加一个大电容加在3.3Vldo之前

然后检测电容电压 如果掉电乱七八糟外设关了专心写flash
反正写起来很费电
并且电源要稳定否则容易写错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

45

主题

730

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部