我已经把一个变量存进FLASH,但是因为断电以后,程序重启,回到了定义变量上,不知道怎么改

2019-07-21 05:14发布

现在是10,按键keyup加一keydown减一,我通过按键之后,数字发生变化,我重启电源之后依旧是10,应该是存进去了,但是我没法显示出存进去的量
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
edmund1234
1楼-- · 2019-07-21 06:02
本帖最后由 edmund1234 于 2019-2-18 20:01 编辑

一定要给这个m做个状态标记m_marker(同样存于flash),上电后检查状态标记m_marker, 如果m_marker==0x55, 就从flash调出m_value, 否则就赋默认值m=10

更新时 m_value=m;m_marker=0x55;


nashui_sx
2楼-- · 2019-07-21 10:02
u32 m=读flash();

或者flash别的位置定一个flag,判断flag 看初始化m的时候是否赋值10
钧哥
3楼-- · 2019-07-21 13:35
nashui_sx 发表于 2019-2-18 15:47
u32 m=读flash();

或者flash别的位置定一个flag,判断flag 看初始化m的时候是否赋值10

第一种方法应该不行吧,我最初用这个试了没成功,第二个没怎么明白,能详细说一下嘛?
nashui_sx
4楼-- · 2019-07-21 17:58
钧哥 发表于 2019-2-18 15:59
第一种方法应该不行吧,我最初用这个试了没成功,第二个没怎么明白,能详细说一下嘛?

第一种方法不行证明你就没写进去

检验方法就是写lcd,别写m  写读出来的值,看看按键能让他变化不

或者串口打印下最方便
jermy_z
5楼-- · 2019-07-21 22:19
 精彩回答 2  元偷偷看……
钧哥
6楼-- · 2019-07-22 03:56
nashui_sx 发表于 2019-2-18 17:24
第一种方法不行证明你就没写进去

检验方法就是写lcd,别写m  写读出来的值,看看按键能让他变化不

我这样说,一开始就存进10也就是m=读flash(10)这个是指存10的读取函数,然后通过按键加减,接着存储,假如断电,程序不是从头开始嘛,m依旧是读flash(10)的,那通过加减的m被读取的10覆盖了

一周热门 更多>