其他分享
首页 > 其他分享> > LVGL | LVGL简介之中文文档

LVGL | LVGL简介之中文文档

作者:互联网

介绍

LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库,提供您创建具有易于使用的图形元素、漂亮的视觉效果和低内存占用的嵌入式 GUI 所需的一切。

主要特征

要求

基本上,每个现代控制器(能够驱动显示器)都适合运行 LVGL。最低要求是:

请注意,内存使用量可能因架构、编译器和构建选项而异。

执照

LVGL 项目(包括所有存储库)在MIT许可下获得许可。这意味着您甚至可以在商业项目中使用它。

这不是强制性的,但如果您在论坛的“我的项目”类别中写下关于您的项目的几句话或来自lvgl.io的私人消息,我们非常感谢。

尽管您可以免费获得 LVGL,但它背后的工作量很大。它由一群志愿者创建,他们在空闲时间为您提供。

为了使 LVGL 项目可持续,请考虑为该项目做贡献。您可以从多种贡献方式中进行选择,例如简单地写一条关于您正在使用 LVGL 的推文、修复错误、翻译文档,甚至成为维护者。

存储库布局

LVGL 项目的所有存储库都托管在 GitHub:https://github.com/lvgl

您在那里填充这些存储库:

LVGL,   lv_exampleslv_drivers是核心的版本库,获取关于维护最关注。

发布政策

核心存储库遵循语义版本控制规则:

分行

核心存储库至少有以下分支:

发布周期

LVGL 的发布周期为 2 周。每个月的第一个和第三个星期二:

  1. master分支创建主要、次要或错误修复版本(基于新功能)

  2. master 合并为 release/vX

  3. 发布后立即dev合并到master

  4. 在接下来的 2 周内,master可以测试新功能

  5. 错误修复直接合并到 master

  6. 2 周后从第一点重新开始

标签

vX.Y.Z为每个版本创建类似标签。

变更日志

更改记录在CHANGELOG.md 中

副业

文档重建上每一个版本。默认情况下,latest会显示当前masterlvgl 分支的文档。早期版本的文档可从左侧的菜单中获得。

模拟器、移植和其他项目会尽最大努力进行更新。如果您更新其中之一,欢迎请求请求。

版本支持

在核心存储库中,每个主要版本都有一个分支(例如release/v6)。该主要版本的所有次要版本和补丁版本都合并在那里。

可以在不打扰新版本的情况下添加固定的旧版本。

所有主要版本都得到官方支持 1 年。

常问问题

我可以在哪里提问?

可以在论坛提问:https : //forum.lvgl.io/

我们使用GitHub 问题进行开发相关讨论。因此,仅当您的问题或问题与库的开发密切相关时,才应使用它们。

是否支持我的 MCU/硬件?

LLVGL 支持每个能够通过并行端口、SPI、RGB 接口或其他任何方式驱动显示器并满足要求的 MCU。

这包括:

支持我的显示器吗?

LVGL 只需要一个简单的驱动程序函数即可将像素阵列复制到显示器的给定区域。如果您可以对显示器执行此操作,那么您可以将该显示器与 LVGL 一起使用。

支持的显示类型的一些示例:

请参阅移植部分以了解更多信息。

没有任何反应,我的显示驱动程序没有被调用。我错过了什么?

确保您lv_tick_inc(x)在中断和lv_task_handler()main中调用while(1)

Tick任务处理程序部分了解更多信息。

为什么显示驱动程序只调用一次?仅刷新显示的上部。

确保您lv_disp_flush_ready(drv)在“显示刷新回调”结束时调用

为什么我在屏幕上只看到垃圾?

您的显示驱动程序中可能存在错误。在不使用 LVGL 的情况下尝试以下代码。你应该看到一个带有红蓝渐变的正方形

#define BUF_W 20
#define BUF_H 10

lv_color_t buf[BUF_W * BUF_H];
lv_color_t * buf_p = buf;
uint16_t x, y;
for(y = 0; y < BUF_H; y++) {
    lv_color_t c = lv_color_mix(LV_COLOR_BLUE, LV_COLOR_RED, (y * 255) / BUF_H);
    for(x = 0; x < BUF_W; x++){
        (*buf_p) =  c;
        buf_p++;
    }
}

lv_area_t a;
a.x1 = 10;
a.y1 = 40;
a.x2 = a.x1 + BUF_W - 1;
a.y2 = a.y1 + BUF_H - 1;
my_flush_cb(NULL, &a, buf);

为什么我在屏幕上看到无意义的颜色?

可能 LVGL 的颜色格式与您的显示器颜色格式不兼容。检查LV_COLOR_DEPTHlv_conf.h

如果您在 SPI(或其他面向字节的接口)中使用 16 位颜色,您可能需要在lv_conf.h 中进行设置。它交换像素的高字节和低字节。LV_COLOR_16_SWAP  1

如何加速我的用户界面?

如何减少闪存/ROM的使用?

您可以在lv_conf.h 中禁用所有未使用的功能(例如动画、文件系统、GPU 等)和对象类型。

如果您使用的是 GCC,您可以添加

从最终二进制文件中删除未使用的函数和变量

如何减少内存使用

如何使用操作系统?

要使用任务可以相互中断(抢占式)的操作系统,您应该使用互斥锁保护与 LVGL 相关的函数调用。请参阅操作系统和中断部分以了解更多信息。

标签:简介,显示器,lv,文档,版本,使用,LVGL,BUF
来源: https://blog.csdn.net/I_feige/article/details/117854517