嵌入式界面神器 littleVGL

news2024/11/9 10:49:47

​1、littleVGL 介绍

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

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

littleVGL 的官方网址

https://littlevgl.com

littleVGL 的 github 网址

https://github.com/littlevgl/lvgl

littleVGL 的在线文档网址

https://docs.littlevgl.com/zh-CN/html/index.html

2、littleVGL 主要特性

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

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

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

  4. 支持多语言的 UTF-8 编码

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

  6. 完全自定制的图形元素

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

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

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

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

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

  12. 支持 PC 模拟器

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

  14. 提供了在线和离线文档

  15. 基于自由和开源的 MIT 协议

littleVGL 的要求

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

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

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

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

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

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

已经支持的平台

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

NXP: Kinetis, LPC, iMX, iMX RT
STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
Linux frame buffer (/dev/fb)
Raspberry Pi
Espressif ESP32
Infineon Aurix
Nordic NRF52 Bluetooth modules
Quectel modems

LVGL也支持:

Arduino library
PlatformIO package
Zephyr library
ESP32 component
NXP MCUXpresso component
NuttX library
RT-Thread RTOS

官方效果图

3、littleVGL 移植到 STM32F103

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

链接:https://pan.baidu.com/s/1-7RFskvZifndQUSzQ4D92Q 提取码:zdyz

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683446.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kali安装Nessus并更新插件包的详细步骤

1. 下载 https://www.tenable.com/downloads/nessus 2. 安装 dpkg -i Nessus-10.5.2-debian10_amd64.deb3. 开启nessus服务 sudo systemctl start nessusd.service4. 浏览器访问Nessus服务 访问 https://$ip:8834选择Managed Scanner,点击Continue选择Tenable.sc,点击Con…

Linux Perf

文章目录 一、简介二、使用方法1、子命令2、Tips 三、perf-list1、事件类型2、事件修饰符 四、perf-top1、输出结果2、选项3、交互命令4、示例 五、perf-stat1、选项2、示例 六、perf-record1、选项2、示例 七、perf-report1、选项2、示例 八、perf-script1、选项2、示例3、火焰…

SpringBoot(一)使用itelliJ社区版创建SpringBoot项目

工欲善其事,必先利其器。目前市面上有很多优秀的开发工具,例如 IntelliJ IDEA、Visual Studio Code 和 Eclipse 等,那么我们该如何选择呢?最好的选择是使用IntelliJ IDEA的Ultimate版本,但Ultimate版本试用期只有30天&…

【JavaWeb基础】RestController的使用

一、学习笔记 RestControllerControllerResponseBody 其中,ResponseBody将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为Json格式响应。 二、代码展示 创建两个类 代码如下: package com.example.controller…

高效视频解码,使用MediaCodec解析H.265

MediaCodec是什么 MediaCodec是Android平台上的一个类,用于实现多媒体数据的编解码操作。它提供了对底层硬件编解码器的访问和控制,可以实现高效的音视频编解码处理,包括解码和编码功能。 通过使用MediaCodec,开发人员可以利用硬…

在多台服务器上运行相同命令

文章目录 PSSH安装使用(1)、定义一个文件,写入需要操作的机器,如pssh-hosts(2)、pssh执行命令(3)、参数含义(4)、pscp从96.54拷贝文件到其他机器(5)、pslurp从其它机器下载文件到本地(6)、pnuke 杀死远程主机上的进程 ansible安装使用(1)、安装完后&…

兼容性测试如何提高网站的性能?

随着互联网的持续发展,越来越多的公司和组织都开始关注网站的性能问题。一个高效的网站不仅可以提高用户满意度,促进业务的发展,还可以提高搜索引擎的排名,为公司带来更多的流量和收益。而兼容性测试是提高网站性能的关键之一&…

SECS协议学习

1.SECS介绍 SEMI(国际半导体协会)为了方便工厂系统与设备沟通而建立的一种通信标准 2.SECS常用功能 2.1.设备向工厂系统报告设备状态(自动、暂停、初始化、报警,特殊事件:如门开启等) 2.2.远程控制设备&#xff0…

实录分享 | Alluxio Operator一体化部署方案

今天给大家分享的内容是 Alluxio Operator的一体化部署方案。我会将内容分成 4 个部分来给大家讲解。 首先,介绍 Kubernetes 容器化部署和当前所面临的挑战。 然后,引入operator的概念,介绍当前业界关于Kubernetes 容器化部署问题的主流解决…

好用的web可视化报表工具

随着数字化程度加深,数据可视化成为数据分析中不可或缺的重要组成部分,可视化图表能非常直观地为管理者和决策者提供有效的企业信息,因此找到一款好用的数据可视化工具尤为重要! 中国式报表设计 报表可视化操作界面,…

Docker容器日志管理详解

1. 简介 Docker容器日志是指容器在运行过程中产生的各种日志信息,包括错误、警告、信息等。Docker将所有容器的日志统一管理,方便用户对容器进行监控、故障排查和性能分析。 1.1 什么是Docker容器日志 Docker容器日志是容器在运行过程中产生的各种日志…

推荐5款非常小巧精致的免费软件

今天继续分享5个超实用的小工具,都是非常小巧精致的免费软件。 开源三维建模——Blender ​ Blender是一个开源的三维建模和动画软件,可以用于制作游戏、电影、广告等。它拥有丰富的建模、雕刻、纹理、渲染、动力学、模拟等功能,以及内置的…

Sequential用法

目录 1.官方文档解释 1.1原文参照 1.2中文解释 2.参考代码 3.一些参考使用 3.1生成网络 3.2 感知机的实现 3.3组装网络层 1.官方文档解释 1.1原文参照 A sequential container. Modules will be added to it in the order they are passed in the constructor. A…

数据治理的关键能力是什么?如何发力?

工业时代历经百年形成的全球经济体系、治理体系,在突如其来的新冠疫情冲击和数字技术高速发展下,开始加速变革。从社会经济系统来看,未来人类社会将向“实体数字”的二维空间发展。数字经济将是基于这个二维空间而建立的新经济模式&#xff0…

做好新媒体宣传的工作总结

新媒体宣传工作总结1 不得不说时间过的真快,自己在_公司_部工作已有两多月了。这段时间是我人生的一个重大转折点,一个在校生成为一名社会人员的转型期,在这期间我失去了,也收获了,更多的是我成长了。 走出校园我还懵懵…

一文彻底教你如何mysql8驱动 jdbc下载

这里以mysql-connector-java-8.0.29.jar为例 打开MySQL官网,点击DOWNLOADS,如下图 进入页面后,滚动到下方,点击 MySQL Community (GPL) Downloads 进入后,点击Connector/J 选择项 这里选择的是zip包&#xff0c…

OpenMMLab OpenMMLab mmdeploy v1.1.0模型部署(一)

一、MMDepoly整体框架 模型部署是指把机器学习训练生成的算法模型,部署到各类云、边、端设备上去, 并使之高效运行,从而将算法模型实际地应用到现实生活中的各类任务中去,从而实现AI的智能化转型。 目前,我们已经支持…

windows下进行c++开发环境的搭建以及使用cmake跨平台工具进行c++代码的开发

windows下使用cmake进行c程序的开发 要求环境条件简单使用cmake 要求环境条件 安装mingw64并配置环境变量 检查命令 gcc - v安装cmake并配置环境变量 检查命令 cmake – version安装vscode安装vscode开发插件,cextension pack(这是一系列整合包) tips: 腾讯微云min…

el-popover修改宽度

popper-class可以修改其样式。 写法&#xff1a; <el-popover v-if"showNav false" popper-class"el-popover-self"><template #reference><el-icon class"recorder_open"><DArrowLeft style"color: #ffb814"/&…

23年测试前景?测试开发?开发测试框架你懂多少?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 基本概念 库&…