tag 标签: LVGL

相关博文
  • 2025-4-25 12:11
    0 个评论
    LVGL是一个免费的轻量级开源图形库。具有丰富部件与高级图形特性,支持多种输入设备和多国语言,独立于硬件之外的开源图形库。LVGL的配置主要区别在于渲染后端的选择,目前可选DRM直接送显以及通过SDL送显。目前RK3506平台可支持SDL送显。 本文基于触觉智能RK3506星闪开发板进行演示,配套RK3506核心板(3核A7@1.5GHz+M0@200MHz多核异构) 含税价5 9元 ,一片也是批量价~~ 配置LVGL Buildroot配置 基础配置保存路径: $sdk/buildroot/configs/rockchip_rk3506_defconfig # Buildroot相关配置 #include "base/base.config" #include "chips/rk3506_arm.config" #include "fs/vfat.config" #include "wifibt/bt.config" #include "wifibt/wireless.config" #include "multimedia/audio.config" #include "wifibt/bt.config" #include "wifibt/wireless.config" #include "lvgl/lvgl_rkadk.config" #include "lvgl/rk_demo.config" #include "fs/ntfs.config" ... LVGL配置 基础配置保存路径: $sdk/buildroot/configs/rockchip/lvgl/v8 $ ls buildroot/configs/rockchip/lvgl/v8 base.config lvgl_drm.config lvgl_rkadk.config lvgl_sdl.config LVGL DEMO 源码⽬录结构 源码路径:SDK/app/lvgl_demo/ $ tree -L 1 . #i ├── amp_monitor ├── cJSON# cJSON源码 ├── CMakeLists.txt ├── common ├── flexbus ├── gallery ├── lv_demo# 基础示例程序,运行官方DEMO ├── lvgl8# 默认使用lvgl8 ├── lvgl9 ├── motor_demo ├── rk_demo# RK显控DEMO,包含智能家居、家电显控、楼宇对讲、系统设置等DEMO ├── sys# 时间戳,trace debug等 └── tools rk_demo代码说明 源码路径:SDK/app/lvgl_demo/rk_demo 主要作为一个示例程序,演示如何将官方的DEMO运行起来。以下说明略过一些无关的代码,仅挑选需要关注的代码进行说明。 static void lvgl_init(void) { /* 一切LVGL应用的开始 */ lv_port_init(); ... check_scr(); } ... int main(int argc, char **argv) { signal(SIGINT, sigterm_handler); struct sched_param param; int max_priority; max_priority = sched_get_priority_max(SCHED_FIFO); param.sched_priority = max_priority; if (sched_setscheduler(0, SCHED_FIFO, param) == -1) { perror("sched_setscheduler failed"); } /* 根据配置选择对应的DEMO初始化,绘制对应UI */ #if ROCKIT_EN RK_MPI_SYS_Init(); #endif #if WIFIBT_EN run_wifibt_server(); #endif lvgl_init(); app_init(); rk_demo_init(); while (!quit) { /* 调用LVGL任务处理函数,LVGL所有的事件、绘制、送显等都在该接口内完成 */ lv_task_handler(); usleep(100); } #if ROCKIT_EN RK_MPI_SYS_Exit(); #endif return 0; } 源码编译说明 修改源码后,重新编译之前删除之前的的lvgl_demo: $ rm -rf SDK/buildroot/output/rockchip_rk3506/build/lvgl_demo/ -rf 重新编译buildroot: $ ./build.sh buildroot DEMO编译说明 触觉智能RK3506资料网盘中有提供的lvgl的demo,以下是编译方法以及demo运行方法。 解压 命令如下: $ mkdir demo $ unzip lvgl_demo.zip -d demo/ $ cd demo/lvgl_demo 修改与编译 修改交叉编译工具链: $ cat Makefile # # Makefile # #CC ?= gcc CC = /home/rk3506/rk3506_linux-250211/rk3506_linux6.1/buildroot/output/rockchip_rk3506/host/bin/arm-buildroot-linux-gnueabihf-gcc LVGL_DIR_NAME ?= lvgl LVGL_DIR ?= ${shell pwd} CFLAGS ?= -O3 -g0 -I$(LVGL_DIR)/ -Wall -Wshadow -Wundef -Wmissing-prototypes -Wno-discarded-qualifiers -Wall -Wextra -Wno-unused-function -Wno-error=strict-prototypes -Wpointer-arith -fno-strict-aliasing -Wno-error=cpp -Wuninitialized -Wmaybe-uninitialized -Wno-unused-parameter -Wno-missing-field-initializers -Wtype-limits -Wsizeof-pointer-memaccess -Wno-format-nonliteral -Wno-cast-qual -Wunreachable-code -Wno-switch-default -Wreturn-type -Wmultichar -Wformat-security -Wno-ignored-qualifiers -Wno-error=pedantic -Wno-sign-compare -Wno-error=missing-prototypes -Wdouble-promotion -Wclobbered -Wdeprecated -Wempty-body -Wtype-limits -Wshift-negative-value -Wstack-usage=2048 -Wno-unused-value -Wno-unused-parameter -Wno-missing-field-initializers -Wuninitialized -Wmaybe-uninitialized -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wtype-limits -Wsizeof-pointer-memaccess -Wno-format-nonliteral -Wpointer-arith -Wno-cast-qual -Wmissing-prototypes -Wunreachable-code -Wno-switch-default -Wreturn-type -Wmultichar -Wno-discarded-qualifiers -Wformat-security -Wno-ignored-qualifiers -Wno-sign-compare LDFLAGS ?= -lm BIN = demo #Collect the files to compile MAINSRC = ./main.c include $(LVGL_DIR)/lvgl/lvgl.mk include $(LVGL_DIR)/lv_drivers/lv_drivers.mk #CSRCS +=$(LVGL_DIR)/mouse_cursor_icon.c OBJEXT ?= .o AOBJS = $(ASRCS:.S=$(OBJEXT)) COBJS = $(CSRCS:.c=$(OBJEXT)) MAINOBJ = $(MAINSRC:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) $(MAINSRC) OBJS = $(AOBJS) $(COBJS) ## MAINOBJ - OBJFILES all: default %.o: %.c @$(CC) $(CFLAGS) -c $ -o $@ @echo "CC $" default: $(AOBJS) $(COBJS) $(MAINOBJ) $(CC) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS) clean: rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ) 修改DEMO,如图所示,在main.c中将demo中显示的分辨率设置成与屏幕分辨率对应: 编译(注意:交叉编译工具链路径根据实际情况进行更改。): $ make 最后将编译出的demo 通过adb push到开发板上。 C:\Users\industio_mhkadb push Z:\rk\rk3506\rk3506_linux-250211\rk3506_linux6.1\app\test\demo\lvgl_demo\demo / Z:\rk\rk3506\rk3506_linux-250211\rk3506_linux6.1\app\test\...ile pushed, 0 skipped. 24.4 MB/s (1127184 bytes in 0.044s) root@rk3506-buildroot:/# chmod a+x /demo root@rk3506-buildroot:/# /demo
  • 2025-4-2 18:13
    83 次阅读|
    0 个评论
    在如今工业智能化快速发展的时代,工业HMI的响应速度、显示效果与系统稳定性已成为设备竞争力的核心要素。 触觉智能RK3506核心板 59元售价,深度融合LVGL开源图形框架,以2.5秒极速启动、20ms超低触控延时、400MB/s显示带宽的硬核性能,为工业HMI、智能终端等场景提供低成本、高可靠性的解决方案。 LVGL图形界面库 LVGL是什么 LVGL(Light and Versatile Graphics Library)是一个免费的轻量级开源图形库。具有丰富部件与高级图形特性,支持多种输入设备和多国语言,独立于硬件之外的开源图形库。 LVGL优势 除了免费开源的优势,LVGL可以在占用很少资源的前提下,实现丝滑的动画效果和平滑滚动的高级图形,具有轻量化、跨平台可用性、易于移植、操作友等诸多优势。 RK3506与LVGL结合特性 2.5秒极速启动 通过全链路启动优化(Bootloader加载、内核裁剪、LVGL UI预加载),相较传统方案启动速度提升300%。 丝滑交互与高精度显示 LVGL框架+电容触控优化算法,实现“指尖触达即响应”,满足工业设备高频操作需求,并支持高达1280×1280分辨率的显示输出。 低功耗模式 屏幕休眠时功耗低至0.1W,满载不超过0.7W! LVGL应用场景落地 工业HMI人机界面 数控机床控制面板,可通过LVGL动态图表实时显示8轴位置、加工进度,触控操作丝滑流畅,支持可视化编辑。 产线状态监控大屏 多窗口分屏显示设备运行参数、报警日志,支持滑动翻页与手势缩放,最高输出1280×1280分辨率展示设备运行实况。 充电桩交互界面 扫码支付、充电进度动画、故障代码可视化,在 触觉智能RK3506核心板 59元售价情况下,成本骤降约40%! 便携式检测设备 低功耗模式下续航长达72小时,LVGL界面支持多语言切换,满足各类检测设备需求。 触觉智能RK3506核心板 视频: 图文:
  • 热度 2
    2025-1-16 13:15
    641 次阅读|
    0 个评论
    一个易用且轻量化的UI可以大大提高用户的使用效率和满意度——通过快速启动、直观操作和及时反馈,帮助用户快速上手并高效完成任务;轻量化设计则可以减少资源占用,提升启动和运行速度,增强产品竞争力。 LVGL(Light and Versatile Graphics Library)是一个免费开源的图形库,专为嵌入式系统设计。它以轻量级、高效和易于使用而著称,支持多种屏幕分辨率和硬件配置,并提供了丰富的GUI组件,能够帮助开发者轻松构建出美观且功能强大的用户界面。 近期,飞凌嵌入式为基于NXP i.MX93系列处理器打造的OK-MX9352-C开发板成功移植了LVGL v8.3,不仅界面美观精致,启动速度也大幅提升,仅需3.1s。 下面,我们将通过Ebike Screen Demo来展示LVGL v8.3在OK-MX9352-C开发板上的实际运行效果。 在OK-MX9352-C开发板上运行的LVGL v8.3版本中,飞凌嵌入式移植了一个Ebike Screen Demo,用于模拟电助力自行车屏幕界面。它充分利用了LVGL的组件和特性,展示了一个既美观又实用的仪表盘。 01 自定义背景图片 Demo使用了自定义绘制的背景图片,不仅美观,还通过LVGL的图像处理功能被完美地嵌入到界面中,使得整个仪表盘看起来更为美观。 02 基本组件的灵活应用 Demo中使用了按钮、页面跳转等基本组件,提供了丰富的交互功能。用户可以通过点击按钮来切换不同的页面,查看不同的信息。这些组件的灵活应用使得Demo的界面更加直观和易用。 03 丰富的信息显示 Ebike Screen Demo中展示了包括速度、电池、时间、地图和设置在内的多种信息,这些信息通过LVGL的图表和文本组件被清晰地呈现在屏幕上,使用户能够一目了然地了解电助力自行车的当前状态。 通过Ebike Screen Demo的展示,我们可以看到LVGL在OK-MX9352-C开发板上运行的优势——快速启动、功能丰富、界面美观,这对于正在寻找轻量化、易集成GUI解决方案的开发者来说,是一个非常具有优势的选择。 相信在未来,LVGL的图形界面将会更加多样化和智能化。飞凌嵌入式也将有更多产品适配LVGL,为嵌入式设备带来更加丰富和高效的交互体验,大家敬请期待。
  • 热度 1
    2025-1-10 10:57
    331 次阅读|
    0 个评论
    LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库,旨在为各种微控制器(MCU)和微处理器(MPU)创建美观的用户界面(UI)。LVGL可以在占用很少资源的前提下,实现丝滑的动画效果和平滑滚动的高级图形,具有轻量化、跨平台可用性、易于移植、操作友好以及免费使用等诸多优势。 近期,飞凌嵌入式为OK3506J-S开发板移植了最新9.2版本的LVGL,支持多种屏幕构件以及鼠标、键盘、触摸等多种输入方式, 能够带来更加友好的操作界面;同时,启动速度也大幅提升,经过Demo测试,启动时间仅需2秒左右,CPU占用为8%~17%。 1、OK3506J-S开发板介绍 飞凌嵌入式OK3506J-S开发板基于瑞芯微RK3506J处理器开发设计,采用ARM 3*Cortex-A7+Cortex-M0架构,具有低成本、低功耗、高效能的特点,专为智能语音交互、音频输入/输出处理、图像输出处理等数字多媒体应用而设计。 值得注意的是,飞凌嵌入式FET3506J-S核心板也是业内首个搭载RK3506J处理器的SoM方案。 2、LVGL简介 (1) LVGL数据流 我们可以为每个屏幕创建一个显示盘(lv_display),在其上创建屏幕小部件,将小部件添加到这些屏幕上。如果要处理触摸、鼠标、键盘等输入时间,需要为它们创建一个Input Device;Tick接口告诉LVGL现在是什么时间;计时器处理器驱动LVGL的计时器,依次执行LVGL所有与时间相关的任务。 (2) LVGL数据流支持的显示后端 (3) 常用的显示控件 (4) 常用的组件 (5) 常用的布局 3、LVGL案例展示 飞凌嵌入式在OK3506J-S开发板上移植了一套Ebike screem的Demo,使用按钮、页面跳转等基本组件配合自定义绘制的背景图片制作出炫酷的仪表盘,可以逼真地模拟电助力自行车的屏幕界面,并展示出速度Speed、电池Battery、时间Time、地图Map等丰富的信息。 骑行信息界面 设置界面 电池信息界面 地图信息界面 以上就是飞凌嵌入式OK3506J-S开发板的LVGL使用示例,希望能够对屏幕前的工程师朋友有所帮助。OK3506J-S开发板即将上市,请您持续关注。
  • 热度 4
    2024-7-7 18:20
    552 次阅读|
    0 个评论
    【D133CBS RISC-V KunLun Pi】LVGL探索与体验
    开发板配备一块480*272分辨率RGB565显示屏,带触摸功能。此篇讲述SDK LVGL功能。 首先,控制台使用scons --menuconfig命令,进入配置界面,选择LVGL showcase demo,保存后退出。 图1:图形界面LVGL配置 开发板硬件UART0配置为系统调试串口,可以作日志使用,也可以进入命令模式辅助开发调试。 图2:串口日志调试 SDK使用的是RT-Thread系统,已经移植了LVGL框架。在kernel/rt-thread/src/components.c里rtthread_startup作为系统main启动函数,对系统板级初始化、系统定时器初始化,初始化任务,启动调度器等。 lvgl_thread_init创建了LVGL任务,在lvgl_thread_entry任务里,实现了LVGL功能,包含lvgl初始化,LCD屏配置,触摸配置以及用户UI界面设计。用户界面在lv_user_gui_init里设计。 图3:LVGL任务 这里做一下旋转屏方面的试验。在lv_port_disp.c里voidlv_port_disp_init()函数增加屏幕旋转配置参数,在lv_fbdev.h配置USE_DRAW_BUF是能及匹配调整屏的像素大小。如下图所示。 图4-1:屏幕旋转显示配置 图4_2:旋转配置使能及像素匹配 scons编译后AiBurn烧录。进入烧录方式:上电后按住UBOOT键不放,按一下RESET键,然后松开UBOOT键,进入烧录模式,加载编译后镜像,点击“开始”进行烧录. 图5:烧录固件 较修改前,屏幕旋转了180°,旋转屏显示效果如下: 图6:LCD屏旋转效果 至此,对SDK LVGL功能有进一步的了解与使用。
相关资源