大彩串口屏幕使用记录

开机画面

开机画面跳转-lua脚本

1:创建定时器

function on_screen_change(screen)
	if screen == Bootanimation_id then
		start_timer(2,1000,0,4)
		set_value(screen,3,CatTime)
	end
end

 2:定时器回调

function on_timer(timer_id)  
	if timer_id == 2 then
		if get_current_screen() == Bootanimation_id then
			CatTime = CatTime - 1
			set_value(Bootanimation_id,3,CatTime)
			if CatTime == 0 then
				change_screen(0)
			end
		end	
	 end	
end

控件之间关联

说点废话:看到出厂demo 滑动控件与文本显示控件数值相关联,我的第一想法是控件属性中间可以相互发指令(原因是看到按键属性有对内、对外指令),我找了老半天了就是找到对内对外指令,点击帮助也没提到这块,看官方文档,才提到这个关联的介绍,但是最后的MCU代码竟然有个小BUG。

 这时候才确定,控件间没有指令传输,再去看出厂代码,原来是通过lua脚本实现的

if screen == Slider_screendid then
		if control == 2 then
			set_value(screen,3,value)
			set_backlight(value)
		end
		if control == 5 then
			set_value(screen,6,value)
		end
	end

开机屏幕发出的指令

 第一条:00 00 ,不解释了,大彩指令集没提到。

第二条:

第三条:

FLASH JSON

这里要注意的就是地址越界问题,查看json数组尺寸的语法

print("size of w json ", #json_data)

实际使用的时候要在这个尺寸上+5

比如#json_data 的尺寸是98,实际上占用的尺寸是98+5 = 103;

MCU获取串口屏数据的方法

官方给的MCU代码已经给了各种事件回调接口,最直接的方式是事件后回调获取,但是有的时候串口屏使用的是lua给的一些数值,这时候是没有回调接口响应的,我的处理方法是

UpdateUI()
/*!
*  \brief     获取控件值
*  \param  screen_id 画面ID
*  \param  control_id 控件ID
*/
void GetControlValue(uint16 screen_id,uint16 control_id)

在UpdateUI内调用GetControlValue接口,这样就会出现事件回调了。要注意的是如果有多个GetControlValue要分时get,防止粘包。

其实在MCU端,用用代码都可以写在这个UpdateUI内实现,UpdateUI是100ms回调。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值