全球新资讯:嵌入式界面神器littleVGL介绍

2023-06-30 10:06:35 来源:嵌入式开发爱好者

1、littleVGL 介绍

littleVGL 是近几年开始流行的一个小型开源嵌入式GUI 库,具有界面精美,消耗资源小,可移植度高,响应式布局等特点,全库采用纯 c 语言开发,而且 littleVGL 库的更新速度非常快,随着 littleVGL 的认知度越来越大,官方资料也逐渐丰富起来。


(资料图片仅供参考)

相比 emWin,littleVGL 的图形效果更好,当然,对 MCU的要求要比 emWin 要高,大家根据 MCU 的资源情况进行选择。

2、littleVGL 主要特性

具有非常丰富的内置控件,像 buttons, charts, lists, sliders, images 等

高级图形效果:动画,反锯齿,透明度,平滑滚动

支持多种输入设备,像 touchpad, mouse, keyboard, encoder 等

支持多语言的 UTF-8 编码

支持多个和多种显示设备,例如同步显示在多个彩色屏或单色屏上

完全自定制的图形元素

硬件独立于任何微控制器或显示器

可以缩小到最小内存 (64 kB Flash, 16 kB RAM)

支持操作系统、外部储存和 GPU(非必须)

仅仅单个帧缓冲设备就可以呈现高级视觉特效

使用 C 编写以获得最大兼容性(兼容 C++)

支持 PC 模拟

为加速 GUI 设计,提供教程,案例和主题,支持响应式布局

提供了在线和离线文档

基于自由和开源的 MIT 协议

littleVGL 的要求

16、32 或 64 位的单片机(微控制器)或处理器

微处理器的主频最好高于 16MHZ

Flash/ROM:如果只用 littleVGL 核心组件的话,则至少需要 64kB 的容量,如果想完整使用的话,最好保证 180kB 以上的容量

RAM:SRAM: 大约 8 到 16 kB,这取决于你所用的组件功能和 objects 控件对象类型;栈: 至少为 2Kb,一般推荐值为 4kB;动态数据(堆): 至少 4kB,如果你用到了多个或多种控件的话,那么最好设置为 16kB 以上,这个是可以通过 lv_conf.h 配置文件中的 LV_MEM_SIZE 宏来定义的;显示缓冲区: 至少要比”水平分辨率像素”要大,一般推介值为 10 倍的”水平分辨率像素”,取个例子,假如我们屏幕的水平分辨率为480个像素,采用16位的颜色深度进行显示,即一个像素占 2 个字节,那么推介的显示缓冲区大小为 104802=9600 个字节

C99 或更新的编译器,如果是用 keil开发的话,一定得勾选”c99”模式,否则编译会报错的

基本的 c(或者 c++)语言知识,如:指针,结构体,回调函数

已经支持的平台

LVGL本身并不依赖特定的硬件平台,任何满足 LVGL 硬件配置要求的微控制器均可运行 LVGL。如下仅列举其中一部分:

NXP:Kinetis,LPC,iMX,iMXRTSTM32F1,STM32F3,STM32F4,STM32F7,STM32L4,STM32L5,STM32H7MicrochipdsPIC33,PIC24,PIC32MX,PIC32MZLinuxframebuffer(/dev/fb)RaspberryPiEspressifESP32InfineonAurixNordicNRF52BluetoothmodulesQuectelmodems

LVGL也支持:

ArduinolibraryPlatformIOpackageZephyrlibraryESP32componentNXPMCUXpressocomponentNuttXlibraryRT-ThreadRTOS

官方效果图

3、littleVGL 移植到 STM32F103

移植教程正点原子有做过,全套资源如下

教程写的很好,大家可以参照移植,玩起来!

审核编辑:汤梓红

标签:

上一篇:反相比例放大电路和同相比例放大电路讲解
下一篇:最后一页