大彩串口屏之LUA使用1

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软件中指令助手中可以查看到。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210324180123174.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L05hdW55YW5n,size_16,color_FFFFFF,t_70
注意:划线部分的配置:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值