1:需求:想通过用户输入文本参数值,存入到屏的Flash中,断电不丢失,下一次上电显示的还是最后一次输入的值。
2:实现原理:用户在界面上设置文本控件的输入,输入完成可通过点击“保存”按钮
来实现将数值保存起来,断电重新上电文本控件显示上次输入的值。
特别注意:–按下保存按钮控件触发,画面ID是5,控件ID是4,按下状态是1;【程序实现中有体现】
3:解决方法:可以通过LUA脚本进行对屏的控制。通过求助大彩的技术支持,得到一份文档,先是照猫画虎把LUA程序拷贝过来然后进行参数修改。我修改过之后的程序如下:
--初始化函数
function on_init()
local read_data={} --定义读取的数组
if read_flash(0,1)~=nil then --判断flash是否被写过
read_data=read_flash(0,1) --读取flash的数值
set_value(5,2,read_data[0]) --初始化到文本控件
set_value(5,3,read_data[0]) --这里这个值是我用来做测试的,也就是通过输入,这里的参数也会显示为我输入的值
end
end
--定时回调函数,系统每隔1秒钟自动调用。
--function on_systick()
--sys_timer = sys_timer +1
--set_value(2,1,sys_timer)
--end
--用户通过触摸修改控件后,执行此回调函数。
--点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
function on_control_notify(screen,control,value)
if screen == 5 and control == 4 and value == 1 then
--按下保存按钮控件触发,画面ID是5,控件ID是4,按下状态是1;
if get_value(5,2)<=255 then
--判断输入的值是否超出一个字节的范围
local save= {} --定义保存的数组
save[0]=get_value(5,2) --对数组的第一个字节赋值
write_flash(0,save) --对flash进行数组的写操作
end
end
end
TFT工程画面配置如上图:画面ID为5,控制ID分别为 2与3。
4:实现过程中注意遇到的问题:就是如下图中红色圈出来的部分。刚开始我把按钮的初始状态配置成了按下。所以一直不合适。后边修改为弹起。当按下的时候这个Value的值就是1.值在TFT软件中指令助手中可以查看到。
注意:划线部分的配置: