OpenEdv-开源电子网

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

flash模拟EEPROM怎么实现掉电保存呀,具体是怎么操作的,在调用读函数时,代码一直卡在那里,下面的程序都运行不了

[复制链接]

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
发表于 2015-12-29 09:37:33 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-12-29 09:37:34 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
 楼主| 发表于 2015-12-29 09:39:00 | 显示全部楼层
不知道具体怎么用
回复

使用道具 举报

6

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-12-23
在线时间
14 小时
发表于 2015-12-29 09:54:00 | 显示全部楼层
flash里面的数据掉电不会丢失的吧
回复

使用道具 举报

2

主题

391

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2014-8-8
在线时间
307 小时
发表于 2015-12-29 10:13:15 | 显示全部楼层
flash模拟的掉电时你需要保存关键数据的话最好用BKP区,flash区来不及保存可能。
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
 楼主| 发表于 2015-12-29 10:42:15 | 显示全部楼层
365mcu 发表于 2015-12-29 10:13
flash模拟的掉电时你需要保存关键数据的话最好用BKP区,flash区来不及保存可能。

我的板子电池都没装,我现在就是先测试一下是否能掉电保存一下数据
回复

使用道具 举报

2

主题

391

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2014-8-8
在线时间
307 小时
发表于 2015-12-29 12:30:26 | 显示全部楼层
本帖最后由 365mcu 于 2015-12-29 12:31 编辑
zjm0807 发表于 2015-12-29 10:42
我的板子电池都没装,我现在就是先测试一下是否能掉电保存一下数据

那你数据量有多大呢,flash读写尤其模拟EEPROM的比较耗时。(最好贴个部分代码,比如卡在哪等等。。。)
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
发表于 2015-12-29 12:37:56 | 显示全部楼层
FLASH功耗大,耗时不建议作为掉电存储设备,用后备寄存器或者EEPROM吧。把写数据放在PVD_IRQHandler中断里,具体看帖子http://www.openedv.com/thread-39501-1-1.html
回复

使用道具 举报

190

主题

401

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1289
金钱
1289
注册时间
2014-6-15
在线时间
143 小时
发表于 2015-12-29 12:38:05 | 显示全部楼层
这个没什么疑问吧,Flash本身就是能存储数据的,里先把需要保存的数据写到Flash里,在上电读取看看,

但是需要注意,Flash的一部分区域是存储里的程序的,所以你的数据必须保存在没有贝程序占用的Flash区域
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
 楼主| 发表于 2016-1-5 14:40:47 | 显示全部楼层
wang12zhe 发表于 2015-12-29 12:38
这个没什么疑问吧,Flash本身就是能存储数据的,里先把需要保存的数据写到Flash里,在上电读取看看,

但 ...

        keyvalue=KEY_Scan(0);
                        if(keyvalue){
                        switch(keyvalue){
                                case S1_KEY:
                        buf[7]=buf[7]+1;
                                STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)buf,1);
                                  STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,1);
                        buf[7]=datatemp;
                                 break;
                                                
                        }
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13110
金钱
13110
注册时间
2012-11-26
在线时间
3812 小时
发表于 2016-1-5 15:40:16 | 显示全部楼层
zjm0807 发表于 2016-1-5 14:40
keyvalue=KEY_Scan(0);
                        if(keyvalue){
                        switch(keyvalue){

FLASH_SAVE_ADDR 的地址是否是合法的? 是否是偶数地址?
学无止境
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13110
金钱
13110
注册时间
2012-11-26
在线时间
3812 小时
发表于 2016-1-5 15:42:15 | 显示全部楼层
zjm0807 发表于 2016-1-5 14:40
keyvalue=KEY_Scan(0);
                        if(keyvalue){
                        switch(keyvalue){

FLASH_SAVE_ADDR 的地址是否是合法的? 是否是偶数地址?
学无止境
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
 楼主| 发表于 2016-1-5 15:48:57 | 显示全部楼层
jermy_z 发表于 2016-1-5 15:42
FLASH_SAVE_ADDR 的地址是否是合法的? 是否是偶数地址?

肯定呀,现在我通过把地址改为0x8010000后,就没错了。但是还是不能实现掉电保存
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13110
金钱
13110
注册时间
2012-11-26
在线时间
3812 小时
发表于 2016-1-5 15:53:38 | 显示全部楼层
zjm0807 发表于 2016-1-5 15:48
肯定呀,现在我通过把地址改为0x8010000后,就没错了。但是还是不能实现掉电保存

读出来是什么0XFFFF?  估摸着你没写进去
学无止境
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
 楼主| 发表于 2016-1-7 09:16:47 | 显示全部楼层
jermy_z 发表于 2016-1-5 15:53
读出来是什么0XFFFF?  估摸着你没写进去

读出来的就是0,我就是按照正点原子的代码来写的,怎么会错呢
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1767
金钱
1767
注册时间
2015-6-11
在线时间
312 小时
发表于 2016-1-8 10:23:11 | 显示全部楼层
FALSH的写入分四步
1. 解锁
2. 擦除
3. 写入
4. 加锁
你写入是不是少了3个步骤
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-12-28
在线时间
30 小时
 楼主| 发表于 2016-1-9 13:05:04 | 显示全部楼层
要实现掉电保存 ,开始应该先初始化导入保存了的数据
回复

使用道具 举报

7

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2016-5-9
在线时间
58 小时
发表于 2016-8-19 15:43:03 | 显示全部楼层
直接测试我们例程.
回复

使用道具 举报

7

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2016-5-9
在线时间
58 小时
发表于 2016-8-22 09:41:57 | 显示全部楼层
#在这里快速回复#num=0;
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-1 02:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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