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 文件

​ 编译运行

​ 查看效果

相关推荐
点心的游戏开发世界3 小时前
GDScript 入门笔记(十一):Lambda 与匿名函数
开发语言·笔记·游戏引擎·godot
摇滚侠3 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 使用 JdbcTemplate 阅读笔记 32
spring boot·笔记·后端
sunshine22 girl5 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
鱼子星_5 小时前
【C++】继承和多态(上)
c++·笔记
Kobebryant-Manba5 小时前
学习Bert微调
人工智能·学习·bert
xian_wwq6 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
我爱cope6 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
策案案案7 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
代码的小搬运工8 小时前
KVO学习
学习·ios·cocoa
辣知9 小时前
辣知·化智47 黄帝陵与民族精神归途
学习