AIR101 LuatOS LVGL 显示多个标签例程

屏幕资料

AIR101与屏幕连接

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

PC电脑仿真

Lua 复制代码
-- sys库是标配
_G.sys = require("sys")
sys.taskInit(function()
    local cnt=0
    lvgl.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)--创建标签label
	local label1 = lvgl.label_create(cont, nil)--创建标签label
    while 1 do
	    local 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.01
	end
end)
sys.run()

PC电脑仿真运行效果

AIR101移植源码

Lua 复制代码
--- 模块功能: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 do
	    local 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()之后后面不要加任何语句!!!!!

下载程序

实际运行效果

设置标签字体颜色

参考:

设置颜色

添加的语句:

Lua 复制代码
lvgl.label_set_recolor(label, true)
local dispStr ="#FF0000 Latitude11:"..string.format("%3.2f",cnt).."#"
Lua 复制代码
-- sys库是标配
_G.sys = require("sys")
sys.taskInit(function()
    local cnt=0
    lvgl.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)--创建标签label
	local label1 = lvgl.label_create(cont, nil)--创建标签label
	lvgl.label_set_recolor(label, true)
	
    while 1 do
	    local 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.01
	end
end)
sys.run()

运行效果

相关推荐
徐子童8 小时前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
扫地的小何尚2 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI3 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好3 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少6 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈7 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好7 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔8 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云12 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件12 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节