AIR101 LuatOS LVGL 显示多个标签例程

2023-10-25 15:30

本文主要是介绍AIR101 LuatOS LVGL 显示多个标签例程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 屏幕资料

 

 AIR101与屏幕连接

PC端仿真环境合宙官方PC端版本环境搭建教程

 

 PC电脑仿真

-- sys库是标配
_G.sys = require("sys")
sys.taskInit(function()local cnt=0lvgl.init(480,320)--lvgl初始化local cont = lvgl.cont_create(nil, nil);-- lvgl.cont_set_fit(cont, lvgl.FIT_NONE )local label  = lvgl.label_create(cont, nil)--创建标签labellocal label1 = lvgl.label_create(cont, nil)--创建标签labelwhile 1 dolocal str=tostring(cnt)local dispStr ="Latitude11:"..string.format("%3.2f",cnt)local dispStr1="Longitude:" ..string.format("%3.2f",cnt)lvgl.obj_set_pos(label1, 0, 15);lvgl.label_set_text(label, dispStr)--设置标签内容lvgl.label_set_text(label1, dispStr1)--设置标签内容lvgl.scr_load(cont)--加载标签-- lvgl.scr_load(label)-- lvgl.scr_load(label1)sys.wait(100)cnt=cnt+0.01end
end)
sys.run()

 PC电脑仿真运行效果

AIR101移植源码

--- 模块功能:lvgldemo
-- @module lvgl
-- @author armxu
-- @release 2023.10.24-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "lvgl_multi_Label_demo"
VERSION = "1.0.0"log.info("main", PROJECT, VERSION)-- sys库是标配
_G.sys = require("sys")--[[
SPI0
SPI0_SCK               (PB2)
SPI0_MISO              (PB3)
SPI0_MOSI              (PB5)
]]--添加硬狗防止程序卡死
wdt.init(15000)--初始化watchdog设置为15s
sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗log.info("hello luatos")spi_lcd = spi.deviceSetup(0,20,0,0,8,20*1000*1000,spi.MSB,1,1)
-- log.info("lcd.init",
-- lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))log.info("lcd.init",
lcd.init("st7735",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 0,w = 128,h = 160,xoffset = 2,yoffset = 1},spi_lcd))--[[-- v0006及以后版本可用pin方式
spi_lcd = spi.deviceSetup(0,pin.PB04,0,0,8,20*1000*1000,spi.MSB,1,1)
log.info("lcd.init",
lcd.init("st7735s",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
]]
log.info("lvgl", lvgl.init())sys.taskInit(function()local cnt=0--创建容器local cont = lvgl.cont_create(nil, nil);--创建2个标签local label  = lvgl.label_create(cont, nil)local label1 = lvgl.label_create(cont, nil)while 1 dolocal dispStr ="Latitude:"..string.format("%3.2f",cnt)--浮点数转换成字符串local dispStr1="Longitude:" ..string.format("%3.2f",cnt)--浮点数转换成字符串lvgl.obj_set_pos(label1, 0, 15);lvgl.label_set_text(label, dispStr)  --设置标签内容lvgl.label_set_text(label1, dispStr1)--设置标签内容lvgl.scr_load(cont)--加载容器 显示标签sys.wait(200)cnt=cnt+0.01--浮点数累加end
end)-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

 下载程序

 实际运行效果

设置标签字体颜色

参考:

设置颜色

添加的语句:

lvgl.label_set_recolor(label, true)
local dispStr ="#FF0000 Latitude11:"..string.format("%3.2f",cnt).."#"
-- sys库是标配
_G.sys = require("sys")
sys.taskInit(function()local cnt=0lvgl.init(480,320)--lvgl初始化local cont = lvgl.cont_create(nil, nil);-- lvgl.cont_set_fit(cont, lvgl.FIT_NONE )local label  = lvgl.label_create(cont, nil)--创建标签labellocal label1 = lvgl.label_create(cont, nil)--创建标签labellvgl.label_set_recolor(label, true)while 1 dolocal str=tostring(cnt)local dispStr ="#FF0000 Latitude11:"..string.format("%3.2f",cnt).."#"local dispStr1="Longitude:" ..string.format("%3.2f",cnt)lvgl.obj_set_pos(label1, 0, 15);lvgl.label_set_text(label,  dispStr)--设置标签内容lvgl.label_set_text(label1, dispStr1)--设置标签内容lvgl.scr_load(cont)--加载标签-- lvgl.scr_load(label)-- lvgl.scr_load(label1)sys.wait(100)cnt=cnt+0.01end
end)
sys.run()

 运行效果

这篇关于AIR101 LuatOS LVGL 显示多个标签例程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283462

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after