LVGL学习笔记(一)

LVGL学习笔记(一)

使用windows+Visual Studio进行环境搭建

前言

在实际开发中,常常会遇到一个使用显示屏或者触摸屏显示的需求,然后将功能开发完成后给项目经理看,常常会被吐槽界面设计太丑。为了解决这个问题,使用LVGL进行显示优化就显得很有必要了。而之所以选择LVGL,是因为LVGL它能在STM32F103这类仅 64KB RAM 的小内存芯片上跑出媲美高端设备的流畅界面。接下来就让我们一起开始对LVGL相关知识的学习吧。

  • 什么是LVGL?它的主要特点是什么?

    LVGL(Light and Versatile Graphics Library)是一个免费的轻量级开源图形库。

    其主要有如下特点:

    1,丰富的部件:开关、按钮、图表、列表、滑块、图片,等等。

    2,高级图形属性:具有动画、抗锯齿、不透明度、平滑滚动等高级图形属性。

    3,支持多种输入设备:如触摸屏、鼠标、键盘、编码器等。

    4,支持多语言:UTF-8 编码。

    5,支持多显示器:它可以同时使用多个 TFT 或者单色显示器。

    6,支持多种样式属性:它具有类 CSS 的样式,支持自定义图形元素。

    7,独立于硬件之外:它可以与任何微控制器或显示器一起使用。

    8,可扩展性:它能够以小内存运行(最低 64 KB 闪存,16 KB RAM 的 MCU)。

    9,支持操作系统、外部存储器和 GPU(不是必需的)。

    10,具有高级图形效果:可进行单帧缓冲区操作。

    11, 纯 C 编写: LVGL 基于 C 语言编写,以获得最大的兼容性。

  • LVGL的初始化流程是怎么样的?请简要描述。

    LVGL 初始化流程分为以下几个步骤:

    1.调用lv_init()函数,初始化LVGL图形库,注册显示设备和输入设备。

    2.调用lv_port_disp_init()函数和 lv_port_indev_init()函数。

    3.为LVGL提供时基。用户可以使用定时器,在其中断里面定时调用 lv_tick_inc() 函数,为LVGL提供时基。如果工程中带有操作系统,则可以使用相应的时钟函数来为LVGL提供时基。

    4.定时处理LVGL任务。用户需要每隔几毫秒调用一次 lv_timer_handler()函数,以处理LVGL相关的任务,该函数可以放在 while 循环中,但延时不宜过大,需要确保 5 毫秒以内。

    后面的笔记中会分别对每个步骤进行具体的讲解,这里只是先有个影响就好。

  • LVGL的开发环境如何进行搭建?使用模拟器开发有什么好处?

    PC 模拟器的好处有两个,分别如下:

    1.在没有实际硬件的时候也可以学习,降低了学习LVGL的门槛。

    2.在实际设计界面的过程中减少了烧录代码的次数,延长了开发板主控芯片的使用寿命。

    接下来使用Visual Studio在windows系统上搭建LVGL模拟器的开发环境。步骤如下:

    1.安装Visual Studio

    官网下载地址:https://visualstudio.microsoft.com/zh-hans/vs/

    选择2019社区版,安装即可。

    下载好 visual studio ,安装即可,然后打开 installer ,确认安装 C++ 环境。

    2.下载模拟器工程

    LVGL 的 VisualStudio 模拟器工程的获取方式主要有两种:一种是使用git clone下载工程;另一种是git直接下载压缩包,这里推荐使用后一种方法。(默认已经安装 git 环境)

    方法一:git clone下载工程

    git 获取克隆地址:https://github.com/lvgl/lv_port_win_visual_studio.git

    国内镜像地址:mirrors / lvgl / lv_port_win_visual_studio · GitCode

    复制代码
     git clone --recursive https://github.com/lvgl/lv_port_win_visual_studio.git

    如果遇到 OpenSSL SSL_read: Connection was reset, errno 10054 问题,使用如下命令,解除 SSL认证。

    复制代码
    git config --global http.sslVerify "false"

    进入代码根目录,使用git 下载子模块。

    复制代码
    cd xxxfile
    git submodule update --init --recursive

    方法二:git 压缩包下载

    在官网下载lvgl 模拟器压缩包:https://github.com/lvgl/lv_port_win_visual_studio

    解压工程,在下载 子目录 "freetype"、"lv_drivers"、"lvgl" 子模块代码

​ 3.模拟仿真

​ 打开 LVGL.Simulator.sln 文件

​ 编译运行

​ 查看效果

相关推荐
懿路向前2 小时前
【HarmonyOS学习笔记】2026-07-26 | @Trace 序列化 __ob_ 前缀陷阱与消息持久化
笔记·学习
hanlin032 小时前
刷题笔记:力扣第206题-反转链表
笔记·leetcode·链表
一只小菜鸡..2 小时前
南京大学 操作系统 (JYY) 学习笔记:可执行文件、链接器与 Shebang 的彩蛋
笔记·学习
高铭杰3 小时前
Golang sync.Mutex实现原理学习
java·学习·golang
狗凯之家源码网3 小时前
狗凯源码库学习资源真实价值评测
学习
Bernice橘子3 小时前
职场英语学习计划Day024
学习
奋发向前wcx11 小时前
y1,y2总复习笔记10 2026.7.24
笔记·哈希算法·散列表
MuMuMu122311 小时前
智慧监测的“火眼金睛”:当AIoT重构环保监管体系
笔记
Luu.ྀ12 小时前
React详细笔记
javascript·笔记·react.js