前 言
本文主要演示基于TLT113-EVM评估板的LVGL官方案例以及应用开发案例,适用开发环境如下。
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware15.5.5
Linux开发环境:Ubuntu18.04.4 64bit
U-Boot:U-Boot-2018.07
Kernel:Linux-5.4.61、Linux-RT-5.4.61
LinuxSDK:T113_Tina5.0-V1.0(Linux)
本文默认基于NAND FLASH配置评估板进行测试,使用USB TO UART0作为调试串口,通过Linux系统启动卡(Micro SD方式)启动系统。
我司提供的文件系统默认已支持LVGL官方案例,案例源码位于LinuxSDK开发包的"platform/thirdparty/gui/lvgl-8/"目录下。
图 1
LVGL简介
概述
LVGL,全名"Littlev Graphics Library",是一个开源的图形库,主要用于在嵌入式系统上创建图形用户界面(GUI)。它是用C语言编写的,旨在高效和可定制,因此在各种微控制器平台和显示硬件上开发用户界面时备受欢迎。
特性
轻量级:LVGL旨在轻量且高效,适用于资源受限的嵌入式系统,这些系统具有有限的内存和处理能力。
高度可定制:LVGL允许开发人员根据项目要求定制GUI元素的外观和行为。
小部件库:它提供了各种预设计的图形小部件,如按钮、标签、滑块、列表等,以简化交互式用户界面的创建。
事件驱动:LVGL是事件驱动的,这意味着它会响应用户输入和其他事件以触发操作或状态更改。
硬件支持:LVGL支持各种显示和输入硬件,包括不同类型的显示器(TFT、OLED等)和输入设备(触摸屏、按钮等)。
积极的社区:LVGL有一个积极而支持性的社区,为其开发提供了资源并提供开发人员帮助。
跨平台:LVGL可以在各种微控制器平台上使用,适用于各种嵌入式系统。
官方案例演示
本次测试使用HDMI OUT显示,演示LVGL官方案例功能。请通过HDMI线将显示器与评估板HDMI OUT接口连接,并将鼠标与评估板USB1 HOST接口(CON22)连接。
评估板上电启动后,请执行如下命令进行环境配置。
Target# killall Launcher //关闭默认运行的Qt程序
Target# cat /proc/bus/input/devices
Target# ln -s /dev/input/event5 /dev/input/mouse0
图 2
图 3
执行如下命令查看程序参数说明。
Target# lv_examples
图 4
widgets
该案例主要演示如何使用内置的材料主题。执行如下命令,运行widgets案例。
Target# lv_examples 0
图 5
图 6
图 7
图 8
music
该案例为音乐播放器,音乐播放器演示在LVGL上可创建出类似智能手机般的用户界面。执行如下命令,运行music案例。
Target# lv_examples 1
图 9
图 10
benchmark
该案例主要是用于测量LVGL性能或比较不同设置。执行如下命令,运行benchmark案例。
Target# lv_examples 2
图 11
图 12
keypad encoder
该案例展示如何处理按钮、下拉列表、滑块、开关和文本输入等。执行如下命令,运行keypad encoder案例。
Target# lv_examples 3
图 13
图 14
stress
该案例主要是LVGL的压力测试,该案例包含大量的对象创建、删除、动画和样式使用等操作。执行如下命令,运行stress案例。
Target# lv_examples 4
图 15
图 16
lvgl_led_control案例
案例说明
案例功能:程序基于LVGL实现通过显示界面控制LED亮灭的功能。点击按钮可控制LED的亮灭,且界面Label显示LED的亮灭状态。
程序流程如下图所示。
图 17
案例相关资料位于产品资料“4-软件资料\Demo\platform-demos\lvgl-demos\”目录下,具体说明如下:
案例测试
鼠标功能控制
评估板默认支持HDMI显示,本次测试以HDMI显示方式为例进行演示,如需替换为LVDS LCD、MIPI LCD、TFT LCD显示,请替换为对应的可执行程序。请通过HDMI线将显示屏与评估板HDMI OUT接口连接,并将鼠标与评估板USB1 HOST接口(CON22)连接。
将LVGL可执行程序拷贝至评估板文件系统任意目录下,在LVGL可执行程序所在路径下,执行如下命令关闭默认运行的Qt程序并链接鼠标事件。
备注:案例支持鼠标功能(不支持鼠标热拔插)。
Target# killall Launcher
Target# cat /proc/bus/input/devices
Target# ln -s /dev/input/event5 /dev/input/mouse0
图 18
图 19
备注:由于LVGL程序代码中设置的事件节点为"/dev/input/mouse0",而鼠标和触摸事件节点不能共同使用,因此使用鼠标和触摸功能需要分别将对应的节点链接至"/dev/input/mouse0"。
图 20
执行如下命令,可观察到HDMI显示屏显示LED控制界面,可通过鼠标点击界面控制LED亮灭。
Target# ./lvgl_led_control
图 21
图 22
图 23
触摸功能控制
评估板默认支持HDMI显示。如需切换为TFT LCD、LVDS LCD、MIPI LCD等支持触摸功能的显示方式,需替换支持对应显示方式的.fex文件。本次测试使用10.4英寸LVDS显示屏(群创G104XCE-L01)为例。
请将10.4英寸LVDS显示屏(群创G104XCE-L01)与评估板LVDS LCD(显示)、RES TS(触摸)、BACK LIGHT(背光)接口正确连接。
注意:请务必使用我司配套的10.4英寸LVDS显示屏,并按照如下方法进行硬件连接。若采用第三方配件,需仔细核对评估板接口、LVDS显示屏两者线序,否则可能烧毁LVDS显示屏。
注意:LVDS显示屏RES TS信号排线的金属触点需朝向触摸转接线的4个凹槽方向,请勿插反。
图 24
安装完成后,LVDS显示屏与评估板硬件连接如下图所示。
图 25
请将产品资料“4-软件资料\Linux\”目录下的“Boot_package\boot_package-AA_BB\nand\boot_package_lvds_lcd.fex”文件(支持LVDS显示)和“Kernel\image\linux-5.4-[版本号]-[Git系列号]\nand\boot_lvds_lcd.fex”文件拷贝至评估板文件系统"/root/"目录下,执行如下命令将其固化至Linux系统启动卡。
备注:若为eMMC配置评估板,请使用emmc目录下的boot_package_lvds_lcd.fex文件,且Linux系统启动卡对应设备节点为"/dev/mmcblk1",请注意区分。
Target# dd if=boot_package_lvds_lcd.fex of=/dev/mmcblk0 seek=32800
Target# dd if=boot_package_lvds_lcd.fex of=/dev/mmcblk0 seek=24576
Target# dd if=boot_lvds_lcd.fex of=/dev/mmcblk0p4
Target# sync
Target# reboot
图 26
请将LVGL程序拷贝至评估板文件系统任意目录下。在LVGL程序所在路径下,执行如下命令,可观察到LVDS显示屏显示LED控制界面,可通过触摸界面控制LED亮灭。
备注:本次测试以LVDS LCD显示方式为例进行演示,如需替换为MIPI LCD、TFT LCD显示,请替换为对应的可执行程序。
Target# cat /proc/bus/input/devices
Target# ln -s /dev/input/event1 /dev/input/mouse0
Target# ./lvgl_led_control_lvds_lcd
图 27
图 28
图 29
图 30
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!