AIR101 LuatOS LVGL 显示多个标签例程

 屏幕资料

 

 AIR101与屏幕连接

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

 

 PC电脑仿真

-- 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移植源码

--- 模块功能: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()之后后面不要加任何语句!!!!!


 下载程序

 实际运行效果

设置标签字体颜色

参考:

设置颜色

添加的语句:

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=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()

 运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/105319.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023 年最佳开源软件

InfoWorld 公布了 2023 年最佳开源软件榜单,旨在表彰年度领先的软件开发、数据管理、分析、人工智能和机器学习开源工具。 上榜的 25 个软件涵盖编程语言、运行时、应用程序框架、数据库、分析引擎、机器学习库、大型语言模型 (LLM)、用于部署 LLM 的工具等领域 Ap…

李沐——论文阅读——VIT(VIsionTransformer)

一、终极结论: 如果在足够多的数据上面去做预训练,那么,我们也可以不用 卷积神经网络,而是直接用 自然语言处理那边搬过来的 Transformer,也能够把视觉问题解决的很好 (tips:paperswithcode.co…

【保姆级教程】:docker搭建MongoDB三节点副本集

容器可以理解为一个进程,镜像是把环境,组件等都配置好,运行成容器的,容器里面运行服务,也可以说是一个进程。镜像是模板,镜像是实例。 一个镜像可以创建多个实例。也就是多个容器,容器之间相互…

18.1 Socket 原生套接字抓包

原生套接字抓包的实现原理依赖于Windows系统中提供的ioctlsocket函数,该函数可将指定的网卡设置为混杂模式,网卡混杂模式(Promiscuous Mode)是常用于计算机网络抓包的一种模式,也称为监听模式。在混杂模式下&#xff0…

ThinkPHP8学习笔记

ThinkPHP8官方文档地址:ThinkPHP官方手册 一、composer换源 1、查看 composer 配置的命令composer config -g -l 2、禁用默认源镜像命令composer config -g secure-http false 3、修改为阿里云镜像源composer config -g repo.packagist composer https://mirror…

Ubuntu环境下DOSBOX的配置

【步骤一】 先打开命令行,进入root模式,输入如下语句: sudo apt-get install dosbox 该语句的作用主要是安装dosbox 【步骤二】 安装完成之后,命令行输入dosbox 会进入dosbox页面: 【步骤三】 在你的主机中&…

使用pycharm远程连接到Linux服务器进行开发

预计达到的效果 本地的 PyCharm 能达到和远程服务器之间的文件同步;本地的 PyCharm 能够使用远程服务器的开发环境; 环境配置 PyCharm:PyCharm 2021.3 (Professional Edition)Linux服务器:Ubuntu20.04 步骤 1.进入配置项 配…

p5.js 变换操作

本文简介 带尬猴,我嗨德育处主任 在 canvas 里,变换是基础功能。很多基于 canvas 封装的库都有这功能,比如 《Fabric.js 变换视窗》。 变换是针对画布进行全局调整的一种能力,它可以对画布进行全局移动、缩放、旋转等操作。 p5…

一键同步,无处不在的书签体验:探索多电脑Chrome书签同步插件

说在前面 平时大家都是怎么管理自己的浏览器书签数据的呢?有没有过公司和家里的电脑浏览器书签不同步的情况?有没有过电脑突然坏了但书签数据没有导出,导致书签数据丢失了?解决这些问题的方法有很多,我选择自己写个chr…

Server Name Indication(SNI),HTTP/TLS握手过程解析

Server Name Indication(SNI)是一种TLS扩展,用于在TLS握手过程中传递服务器的域名信息。在未使用SNI之前,客户端在建立TLS连接时只能发送单个IP地址,并且服务器无法知道客户端请求的具体域名。这导致服务器需要使用默认…

uniapp把文件中的内复制到另一个文件中

使用的是Html 5的plus.io.resolveLocalFileSystemURL方法,文档:HTML5 API Reference var soursePath file:///storage/emulated/0/a/;//用于读取var removePath file:///storage/emulated/0/w/;//用于移除w这个文件夹var targetPath file:///storage/…

Redis 主从

目录 ​编辑一、构建主从架构 1、集群结构 2、准备实例和配置 (1)创建目录 (2)修改原始配置 (3)拷贝配置文件到每个实例目录 (4)修改每个实例的端口,工作目录 &a…

【Android Studio】工程中文件Annotate with Git Blame 不能点击

问题描述 工程文件中想要查看代码提交信息但是相关按钮不可点击 解决方法 Android Studio -> Preferences -> Version Control-> 在Unregistered roots里找到你想要的工程文件 点击左上角➕号 然后右下角Apply即可

Django viewsets 视图集与 router 路由实现评论接口开发

正常来说遵循restful风格编写接口,定义一个类包含了 get post delete put 四种请求方式,这四种请求方式是不能重复的 例如:获取单条记录和多条记录使用的方式都是get,如果两个都要实现的话那么得定义两个类,因为在同一个类中不能有…

金融领域:怎么保持电力系统连续供应?

银行作为金融领域的关键机构,依赖于高度可靠的电力供应,以保持银行操作的连续性。在电力中断或电力质量问题的情况下,银行可能面临严重的风险,包括数据丢失、交易中断和客户满意度下降。 UPS监控系统在这一背景下变得至关重要&…

解决msvcp120.dll丢失的问题的5个方法,修复系统dll问题

在使用计算机的过程中,我们经常会遇到各种各样的动态链接库(DLL)文件。其中之一就是“msvcp120.dll丢失”。这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题,我们需要找到合适的方法来修复丢失的msvcp120.dll文件。…

【单例模式】饿汉式,懒汉式?JAVA如何实现单例?线程安全吗?

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 单例设计模式 Java单例设计模式 Java单例设计模…

达芬奇MacOS最新中文版 DaVinci Resolve Studio 18中文注册秘钥

DaVinci Resolve Studio 18是一款专业的视频编辑软件,它具有多种强大的功能。首先,它提供了丰富的视频剪辑工具,如剪切、复制、粘贴、剪辑、缩放和移动等,使用户可以轻松地剪辑和组合视频素材。其次,该软件还支持多个轨…

Redis和Memcached网络模型详解

1. Redis单线程单Reactor网络模型 1.1 redis单线程里不能执行十分耗时的流程,不然会客户端响应不及时 解决方法一: beforesleep里删除过期键操作若存在大量过期键时,会耗费大量时间,redis采用的策略之一就是采用timelimit方案超过…

Spring Boot整合OAuth2实现GitHub第三方登录

Spring Boot整合OAuth2,实现GitHub第三方登录 1、第三方登录原理 第三方登录的原理是借助OAuth授权来实现,首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码,然后客户端拿着授权码与授权服务器建立连接获得一个Access Token…
最新文章