创龙科技 TL3576-EVM 是一款基于瑞芯微 RK3576J/RK3576高性能处理器设计的4核ARM Cortex-A72 +4核 ARM Cortex-A53 + ARM Cortex-M0 国产工业评估板,Cortex-A72 核心主频高达 2.2GHz,Cortex-A53 核心主频高达 2.0GHz。评估板由核心板和评估底板组成,核心板 CPU、ROM、RAM、电源、晶振、连接器等所有元器件均采用国产工业级方案,国产化率100%。同时,评估底板大部分元器件亦采用国产工业级方案,国产化率约为 99%(按元器件数量占比,数据仅供参考)。核心板经过专业的PCBLayout 和高低温测试验证,质量稳定可靠,可满足各种工业应用环境要求。
本文主要基于评估板演示LVGL应用开发案例,适用开发环境如下。
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.5 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-6.1.115
LinuxSDK:LinuxSDK-[版本号](基于rk3576_linux6.1_release_v1.1.0)
LVGL的版本:9.1
本文默认使用USB TO UART0作为调试串口,使用Linux系统启动卡(即SD启动卡,Micro SD方式)启动系统。
我司提供的文件系统默认已支持LVGL官方案例,案例源码介绍如下。
LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库),是一个免费开源嵌入式图形库,主要用于在嵌入式系统上创建图形用户界面(GUI)。它是用C语言编写的,旨在高效和可定制,因此在各种微控制器平台和显示硬件上开发用户界面时备受欢迎。
轻量级:LVGL旨在轻量且高效,适用于资源受限的嵌入式系统,这些系统具有有限的内存和处理能力。
高度可定制:LVGL允许开发人员根据项目要求定制GUI元素的外观和行为。
小部件库:它提供了各种预设计的图形小部件,如按钮、标签、滑块、列表等,以简化交互式用户界面的创建。
事件驱动:LVGL是事件驱动的,这意味着它会响应用户输入和其他事件以触发操作或状态更改。
硬件支持:LVGL支持各种显示和输入硬件,包括不同类型的显示器(TFT、OLED等)和输入设备(触摸屏、按钮等)。
积极的社区:LVGL有一个积极而支持性的社区,为其开发提供了资源并提供开发人员帮助。
跨平台:LVGL可以在各种微控制器平台上使用,适用于各种嵌入式系统。
更多详情请查看:LVGL — Light and Versatile Embedded Graphics Library、LVGL Forum - Q&A about LVGL。
案例功能:程序基于LVGL实现通过button控件控制LED灯亮灭以及label控件显示LED灯的亮灭状态。
程序原理:
基于LVGL框架。
通过创建按钮,设置点击事件,调用回调函数,控制LED1、LED2的亮灭。
使用label来显示颜色及文本表示LED1、LED2的亮灭状态。
程序流程如下图所示。
案例相关资料位于产品资料“4-软件资料\Demo\platform-demos\lvgl-demos\”目录下,具体说明如下:
本案例使用HDMI显示屏进行演示,请使用HDMI线将HDMI显示屏与评估板HDMI OUT接口连接,同时将鼠标与评估板USB2.0 HOST(USB2)双层任一接口连接。
输入设备配置
通过设置LV_INPUT_EVENT_ID环境变量可以指定程序使用哪种输入设备,输入设备可为鼠标或触摸屏。
评估板上电启动后,请执行如下命令查看输入事件。
Target# evtest
根据打印信息可知,"/dev/input/event11"为鼠标事件。
请执行如下命令,设置LV_INPUT_EVENT环境变量,指定程序的输入设备,本次命令以指定触摸事件为例。
Target# export LV_INPUT_EVENT_ID=11
备注:LV_INPUT_EVENT_ID=11表示设置输入事件路径为"/dev/input/event11"。
显示设备配置
通过设置LV_INPUT_EVENT_ID环境变量可以指定程序使用何种显示设备。
评估板上电启动后,请执行如下命令查看显示设备的CONNECTOR_ID。
Target# modetest
根据打印信息可知,HDMI对应的CONNECTOR_ID为180。执行如下命令,设置LV_INPUT_EVENT环境变量指定程序的显示设备,本次命令以指定HDMI显示为例。
Target# export LV_DRM_CONNECTOR_ID=180
备注:LV_DRM_CONNECTOR_ID=180:表示设置CONNECTOR_ID为180。
完成输入设备、显示设备的配置后,请将案例bin目录下的可执行程序拷贝至评估板文件系统任意目录下,在可执行程序所在路径下,执行如下命令,运行程序。可观察到HDMI显示屏显示LED控制界面,可通过鼠标点击界面控制LED亮灭。
Target# LV_DRM_CONNECTOR_ID=180 LV_INPUT_EVENT_ID=11 ./lvgl_led_control
将案例src源码目录拷贝至Ubuntu工作目录下,进入源码目录,执行如下命令,修改CMakeLists.txt文件,确保"SDK_PATH"为LinuxSDK安装路径,用户请根据实际情况修改。如下图所示。
Host# vim CMakeLists.txt
修改内容如下:
set(SDK_PATH /home/tronlong/RK3576/rk3576_linux6.1_release)
执行如下命令,加载编译环境。
Host# source /home/tronlong/RK3576/rk3576_linux6.1_release/buildroot/output/rockchip_rk3576/host/environment-setup
执行如下命令,创建编译目录并编译,编译完成将会在同一个目录下生成可执行程序。
Host# mkdir build
Host# cd build
Host# cmake ..
Host# make
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。