广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14785|回复: 18

求助:Flash内部数据存储

[复制链接]

3

主题

13

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2021-11-30 10:08:31 | 显示全部楼层 |阅读模式
本帖最后由 清心如水 于 2021-11-30 10:09 编辑

Lua编程需要存储字节数值,调用write_flash保存后,再调用read_flash读取,只有前几个字节可以实现数值的保存与读取,其他字节保存不成功,贴出部分程序,麻烦解答下,谢谢!
    if screen==4 then
                boxstate_flag=get_value(4,1)
                write_byte_data[0]=boxstate_flag
                flush_flash()
                write_flash(0,write_byte_data)
                if boxstate_flag == 0 and control == 2 and value == 1 then
                        write_byte_data[1]= ((get_value(4,5)*10)>>8)&0xFF
                        write_byte_data[2]=(get_value(4,5)*10)& 0xFF
                        write_byte_data[3]= ((get_value(4,6)*10)>>8)&0xFF
                        write_byte_data[4]=(get_value(4,6)*10)& 0xFF       
                        flush_flash()
                        write_flash(0,write_byte_data)
                end                
                if boxstate_flag == 1 and control == 2 and value == 1 then
                        write_byte_data[5]= ((get_value(4,5)*10)>>8)&0xFF
                        write_byte_data[6]=(get_value(4,5)*10)& 0xFF
                        write_byte_data[7]= ((get_value(4,6)*10)>>8)&0xFF
                        write_byte_data[8]=(get_value(4,6)*10)& 0xFF       
                        flush_flash()
                        write_flash(0,write_byte_data)
                end       
        end
    if screen==5 and control == 1 and value == 1
        then
                write_byte_data[9]= ((get_value(5,4)*10)>>8)&0xFF
                write_byte_data[10]=(get_value(5,4)*10)& 0xFF
                flush_flash()
                write_flash(0,write_byte_data)
        end                

回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12590
发表于 2021-11-30 11:40:01 | 显示全部楼层
读取是一上电就读取,还是通过按钮来控制读取?
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

13

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
 楼主| 发表于 2021-11-30 13:03:16 | 显示全部楼层
上电就读取
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12590
发表于 2021-11-30 14:28:37 | 显示全部楼层
上电读取的话先做一个读取值判断是不是空值的判断语句看看
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

13

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
 楼主| 发表于 2021-11-30 15:32:17 | 显示全部楼层
上电时加了判断语句,set_value(5,  4, (read_byte_data[9]<<8 | read_byte_data[10])/10) ,set_value(6,  4,read_byte_data[11])这两句显示的不是保存数据
if read_flash(byte_addr,12) ~=nil then
                read_byte_data= read_flash(byte_addr,12)
                set_value(4,  1, read_byte_data[0])       
                if read_byte_data[0] == 0 then
                set_value(4,  5, (read_byte_data[1]<<8 | read_byte_data[2])/10)        
                set_value(4,  6, (read_byte_data[3]<<8 | read_byte_data[4])/10)
                end
                if read_byte_data[0] == 1 then
                set_value(4,  5, (read_byte_data[5]<<8 | read_byte_data[6])/10)        
                set_value(4,  6, (read_byte_data[7]<<8 | read_byte_data[8])/10)
                end       
                set_value(5,  4, (read_byte_data[9]<<8 | read_byte_data[10])/10)        
                set_value(6,  4,read_byte_data[11])
        end       
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12590
发表于 2021-12-1 08:39:09 | 显示全部楼层
那两句的数据有写入flash成功吗?
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

13

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
 楼主| 发表于 2021-12-1 13:20:54 | 显示全部楼层
调试时提示write_dirty_sector(0) ok!,应该是写入成功了吧
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12590
发表于 2021-12-1 19:42:04 | 显示全部楼层
试一下后面的换flash地址写入
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

13

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
 楼主| 发表于 2021-12-2 15:32:18 | 显示全部楼层
把不同页面需要保存的数据用不同的数组名,可以实现断电保存,但是按钮状态值不对,比如断电前按钮按下,值为1,断电再上电后,读取保存的状态值应该为1,却是按钮弹起的状态,值为0
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12590
发表于 2021-12-2 15:44:50 | 显示全部楼层
没读错flash地址吧?
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-9-17 03:15 , Processed in 0.051890 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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