嵌入式显示框架LVGL

LVGL是一个轻量级、多功能的开源图形库,适用于各种MCU,具有丰富的控件和低内存占用。TouchGFX是专为STM32优化的图形框架,包含图形构建工具和硬件加速库,适合高阶MCU,提供高性能GUI解决方案。两者都支持触摸输入和多种效果,但TouchGFX在STM32上实现硬件加速,降低CPU负载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LVGL(Light and Versatile Graphics Library)

简介

LVGL官网
一个免费开源的轻量、多功能图形库,提供嵌入式GUI所需的功能,具备易于使用的图形元素、美观的效果和低内存占用。

资源

  • 支持各种16、32、64位微型控制器处理器
  • CPU资源:主频建议 >16MHz
  • Flash/ROM :> 64kB(建议180kB)
  • RAM:>8kB(建议24kB) + FrameBufferSize + GraphicBufferSize
    • Static RAM使用约2kB,取决于使用的特征
    • Stack:>2kB(建议>8kB)
    • 动态数据(heap):>2kB(建议>48k)LV_MEN_SIZE
    • 1帧帧缓存:Frame buffer,在MCU、外部RAM、显示驱动IC中GRAM都可
      • 如240x240,16色深,240x240x2byte = 115kB
    • LVGL的图形缓存:Graphics buffer,屏幕一行水平像素内存占用大小(建议屏幕1/10像素点大小)

特点

  • 免费开源(MTI license)
  • 纯C语言编写,小内存占用,
  • 支持OS:无os、任何os,Nuttx / RT-ThreadX RTOS / FreeRTOS等
  • 超过30+ 丰富自带控件 Widgets:Button、Bar、Silder、Chart、Text area、KeyBoard等支持
  • 多种显示支持 Display:任意分辨率、自定义颜色格式(6/16/32color depth)、
  • 各种输入设备支持 Input Device:触摸板、鼠标、键盘、编码器等,滚动,拖动对象、手势识别;
  • 图形 Drawing:去锯齿、圆角矩形、圆角边界、阴影、线、圆弧、多边形、蒙板
  • 文字 Font:UTF-8、去锯齿、字间距、自动换行和文件滚动、FreeType集成例子、多语言支持
  • 图片 Image:支持多种颜色格式、实时重着色、实时放缩旋转、图片存在文件/flash中、PNG例子
  • 风格 Style:部件外观、提供主题、动画切换、CSS方式Layout、平滑滚动、不透明度等

开发

官网手册

官方文档:API/Code/效果 注意版本

离线模拟环境

Simulator on PC
Window上使用CodeBlocks / VSCode + SDL driver
Linux上使用VSCode + SDL(开源跨平台多媒体开发库,控制图像、剩余、输入输出等)

拖放GUI工具

SquareLine Studio
可以布局放置基础部件及格式,生成初步C代码。免费试用。

ESP32+Nuttx+LCD

make menuconfig 修改 lcd driver application lvgldemo graphic部分生成defconfig
注:app example默认LVGL7.3版本,使用8.0等版本nuttx需要修改部分内容
app/graphics/lvgl/ lv_conf.h lv_demo_conf.h Makefile Make.def
app/examples/lvgldemo/ lvgldemo.c Makefile
7.3和8.0+差别还挺多的 !!!

TouchGFX

简介

TouchGFX介绍

一款针对STM32微控制器进行了优化的免费高级图形软件框架,为基于STM32的硬件快速完成GUI应用程序。TouchGFX由三个主要部分组成:两个工具和一个框架。

  • TouchGFX Designer 拖放式图形构建PC工具
  • TouchGFX Generator STM32CubeMXPC工具进行软硬件配置可生成工程
  • TouchGFX Engine 优化和硬件加速图形库

资源

  • 支持st系列微型控制器处理器:入门级(stm32f0/g0/l0)高阶(stm32u5/h5/f3/l4/h7/wl/f7/mp等)
  • CPU资源:占用率 1 - 90% 取决于应用及可用的硬件加速器
  • Flash/ROM > 61kB
    • 框架:60-100kB
    • 屏设置,GUI,逻辑:1-100kB
    • 图片和字库:1-40MB(取决于应用复杂度)
  • RAM:>20kB
    • 框架和协议:10-30kB
    • 显存:10kB-3MB(取决于屏分辨率,色深,显存数量)
      • 如240x240,16色深,1个显存,240 x 240 x 2byte x 1 = 115kB

特点

  • 高阶MCU集成图形加速的嵌入式图形化硬件加速器,有效释放CPU资源 占用率80%->4%
  • 界面生成C++语言,使用模型-视图-表示器模式轻松与任意C代码对接
  • 支持OS:无os、任何os,Nuttx / RT-ThreadX RTOS / FreeRTOS等
  • 30+窗口小部件:滑动容器、动画图像、形状、时钟、滚动列表等
  • 支持透明度特效、alpha混合、抗锯齿字体和字距调整
  • 持智能手机动画功能,如滑动、滚动、3D效果,视频播放等
  • 触摸显示屏或硬键进行即时交互

开发

TouchGFX官方文档

  • TouchGFX Designer 拖放式图形构建PC工具
  • TouchGFX Generator STM32CubeMXPC工具进行软硬件配置可生成工程
  • TouchGFX Engine 优化和硬件加速图形库

下载

对比

相同点

占用资源较小,适合嵌入式GUI应用,提供丰富窗口部件,支持图形、文字、动画等多样效果,支持触摸按键等输入等;

不同点

LVGL
适用资源符合的MCU、CPU
全部C语言
MTI开源
释放CPU资源需对应提升硬件配置
TouchGFX
适用STM系列单片机
GUI部分C++语言
工具包
ST系列MCU增加硬件加速模块有效释放CPU资源,应该是只有高阶的MCU有加硬件加速

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值