首页 > 其他分享 >【8月摸鱼计划】LVGL

【8月摸鱼计划】LVGL

时间:2023-08-26 11:37:34浏览次数:41  
标签:kB lvgl 摸鱼 支持 lv 计划 https LVGL

目录 一、LVGL起源 二、LVGL组成及相关知识 1、主要特性 2、lvgl开发介绍 3、LVGL在git的仓库布局 三、运行LVGL的硬件需求 1、参数要求 2、显示 3、输入设备 4、绘图功能 5、文本功能 6、图像功能 7、风格 四、windows PC模拟器(codeblocks)运行LVGL 1、什么是codeblocks? 2、代码测试 参考阅读 一、LVGL起源   LVGL(Light and Versatile Graphics Library)是一个轻量级的嵌入式图形库。LVGL的项目作者是来自匈牙利首都布达佩斯的 Gábor Kiss-Vámosi 。Kiss 在2016年将其发布在 GitHub上。

  当时叫 LittlevGL而不是LVGL,后来作者重新命名为 LVGL,甚至连仓库地址都改了。 像一般的开源项目的那样,它是作为一个人的项目开始的。 从那时起,陆续有近 100 名贡献者参与了项目开发,使得 LVGL 逐渐成为最受欢迎的嵌入式图形库之一。LVGL 项目(包括所有存储库)在 MIT license 许可下获得许可。这意味着您甚至可以在商业项目中使用它。这不是强制性的。

  它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素,美丽的视觉效果和低内存占用。

官网地址:https://lvgl.io/

LVGL为我们提供一个详细的英文文档手册,这个文档的在线阅读站点是: https://docs.lvgl.io,下面还有个中文版的

百问网LVGL中文站点:http://lvgl.100ask.net,选择相应的版本v8.1

github地址:https://github.com/lvgl

二、LVGL组成及相关知识 1、主要特性 • 丰富且强大的模块化图形组件:按钮 (buttons)、图表 (charts)、列表 (lists)、 滑动条 (sliders)、图片 (images)等 • 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果 • 支持多种输入设备:触摸屏、键盘、编码器、按键等 • 支持多显示设备 • 不依赖特定的硬件平台,可以在任何显示屏上运行 • 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM) • 基于 UTF-8 的多语种支持,例如中文、日文、韩文、阿拉伯文等 • 可以通过类 CSS的方式来设计、布局图形界面(例如:Flexbox、Grid) • 支持操作系统、外置内存、以及硬件加速(LVGL 已内建支持 STM32 DMA2D、NXP PXP 和 VGLite) • 即便仅有单缓冲区 (frame buffer)的情况下,也可保证渲染如丝般顺滑 • 全部由 C 编写完成,并支持 C++ 调用 • 支持 Micropython 编程,参见:LVGL API in Micropython • 在线模拟器,支持ESP32

2、lvgl开发介绍 • 支持模拟器仿真,可以无硬件依托进行开发 • 丰富详实的例程 • 详尽的文档以及 API 参考手册,可线上查阅或可下载为 PDF 格式 • 在 MIT 许可下免费和开源 • 基本上,每个能够驱动显示器的现代控制器都适合运行 LVGL。

3、LVGL在git的仓库布局 LVGL 项目的所有代码仓库都托管在 GitHub 上:https://github.com/lvgl 您可以从下面的列表获取到 lvgl 所有相关的代码仓库: • lvgl 库本身有很多 例子。 • lv_demos 使用 LVGL 创建的演示。 • lv_drivers 显示和输入设备驱动程序 • 博客 博客站点的来源 (https://blog.lvgl.io) • sim 在线模拟器网站的来源 (https://sim.lvgl.io) • lv_sim_... 各种 IDE 和平台的模拟器项目 • lv_port_... LVGL 端口到开发板 • lv_binding_.. 绑定到其他语言 • lv_... 移植到其他平台

该项目的维护: • 错误修复:每周按需发布 • 次要版本:每 3-4 个月 • 主要版本:大约每年

三、运行LVGL的硬件需求 1、参数要求 16、32 或 64 位微控制器或处理器

建议使用 16 MHz 速度或者更高

闪存/只读存储器:> 64 kB (建议使用 180 kB)

内存:8 kB(建议使用 24 kB)

1 帧缓冲器:在 MCU、外部 RAM 或显示控制器中

LVGL 的图形缓冲区:>“水平分辨率”像素(建议使用 1/10“屏幕尺寸”)

C99 或更高版本的编译器

基本 C(或C++)知识:指针、结构、回调

2、显示 任何分辨率:从小型单色显示器到全高清显示器

简单的界面:一个驱动程序功能即可将渲染的图像复制到显示器

图形处理器支持

多显示器支持

自定义颜色格式支持

灵活的缓冲模式,可实现高质量、高性能和低内存使用率

3、输入设备 同一屏幕的多个输入设备

简单的接口:一个驱动程序功能即可获取输入设备的状态

拖动、滚动对象

识别手势

键盘和编码器支持无触摸板导航

4、绘图功能 抗锯齿

带半径的矩形

带半径的边框

影子

线:

弧:

多边形

掩蔽

5、文本功能 支持 UTF-8

抗锯齿

字距调整

自动换行和自动文本滚动

双向文本支持(混合 RTL 和 LTR)

阿拉伯语和波斯语支持

字体压缩

子像素渲染

在线和离线字体转换器

自定义字体引擎的界面

FreeType 集成示例

多语言支持

6、图像功能 各种颜色格式:RGB、ARGB、色度键控、索引、仅 Alpha

实时对图像进行重新着色

实时缩放和旋转

图像可以放在闪存或文件中(例如SD卡)

在线和离线图像转换器

用于缓存的图像解码器

PNG 集成示例 7、风格 设置微件外观

级联样式(如 CSS 中所示)

在多个小部件中重复使用这些样式

用于简单更改的本地样式

用于提供默认外观的主题

状态更改时的过渡(动画)

 要运行LVGL,您只需要一个C编译器,32kB RAM和128 kB闪存,一个帧缓冲区以及至少一个用于渲染的1/10屏幕大小的缓冲区。

四、windows PC模拟器(codeblocks)运行LVGL 1、什么是codeblocks?   Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets(3.x)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢。

  阅读参考:Code::Blocks_百度百科,其他更多相关资料请自行百度搜索学习,这里不再赘述。

2、代码测试 相关资料链接: 链接:https://pan.baidu.com/s/10fqCw72zTfnj-2iTWFgpTg 提取码:sfh7

  若编译出现如下图错误,可根据图中所示进行解决:

  我个人在实验过程中编译该程序出现了一个switch case选项的宏未定义。可尝试将该选项部分代码隐去,再次编译运行,并不影响最终结果,因为我们主要测试软件安装是否成功,以及观察运行LVGL程序的效果。

  最终成功运行的效果:

标签:kB,lvgl,摸鱼,支持,lv,计划,https,LVGL
From: https://blog.51cto.com/u_15917081/7241254

相关文章

  • 【8月摸鱼计划】电脑出现花屏
    如果显卡硬件导致花屏是,出现一条条的亮点,或是整片出现类似于马赛克的图形!如果是出现变色,只是一侧,或是多个侧面出现偏红,偏紫,等一些颜色的变化,不是显卡导致的。(但是这种都是出现在纯平显示器上的)如果显卡出现花屏,清理一下显卡的金手指,在测试,还是同样的问题,只能维修或是换显卡。如果出......
  • 【8月摸鱼计划】类脑芯片和类脑人工智能算法及其应用
    随着近几年深度学习、神经科学、数字孪生和量子计算的迅速发展,人工智能成为了无论学术界还是互联网领域的一个重要的研究热点。然而,人类在认识世界和改造世界的过程中从自然界和生物特征汲取了大量的灵感和经验。追根溯源,人工智能的发展离不开脑科学的研究。历史上,神经科学和人工智......
  • [8月摸鱼计划] 移植LVGL
    手把手带你移植LVGL前言一、准备工作(工欲善其事必先利其器)1.硬件2.软件二、LVGL源码移植1.下载LVGL源码2.修改LVGL文件夹2.开始移植3.加入lvgl源码三、移植显示驱动1.使能LVGL2.代码改错2.修改lv_conf.h文件3.修改lv_port_disp.c文件4.显示测试四、移植触摸驱动1.......
  • 【8月摸鱼计划】GUI
    GUI(图形用户界面)一种全屏幕图形界面,用户通过点击设备(例如鼠标)操纵图形的屏幕元素。基本信息中文名称图形用户界面外文名称GraphicalUserInterface折叠编辑本段概述图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选......
  • 【8月摸鱼计划】Python GUI
    总结了一下Python下的图形界面GUI工具,暂时能找到的资料就这么多,后续会补充推荐学习资料。图形界面的定义图形界面图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用......
  • 20天 hot 100 速通计划-day17
    动态规划70.爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1.1......
  • 20天 hot 100 速通计划-day16
    堆295.数据流的中位数中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如arr=[2,3,4]的中位数是3。例如arr=[2,3]的中位数是(2+3)/2=2.5。实现MedianFinder类:MedianFinder()初始化MedianFinder......
  • lvgl:对象obj
    1对象object  1.1对象lv_obj_t     对象object:构建用户界面的基本单位,也称之为控件widgets;对于button,label,image,list等组件都可称之为对象;//lv_obj.h对象结构体;typedefstruct_lv_obj_t{constlv_obj_class_t*class_p;struct_lv_obj_t*parent;......
  • 洛谷100题计划 (15/100)
    洛谷100题计划(15/100)P1094[NOIP2007普及组]纪念品分组-洛谷|计算机科学教育新生态(luogu.com.cn)要使得分组最少,其实就是要让一个大的和一个小的放一起,如果大的和小的一起放超过了\(w\),那大的就应该单独放,所以排完序之后,我们可以用双指针从两边寻找可以放一起的......
  • 八月更新 | CI 构建计划触发机制升级、制品扫描 SBOM 分析功能上线!
    点击链接了解详情这个八月,腾讯云CODINGDevOps对持续集成、制品管理、项目协同、平台权限等多个产品模块进行了升级改进,为用户提供更灵活便捷的使用体验。以下是CODING新功能速递,快来看看是否有您期待已久的功能特性:01CI构建计划触发机制升级在原有代码变更及合并请求......