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

​ 编译运行

​ 查看效果

相关推荐
dadaobusi几秒前
学习:PCIe6.0 RS FEC
学习
_橙时_2 分钟前
【MOEA/D的学习小笔记】
笔记·学习·多目标优化·moea/d
kaixin_learn_qt_ing6 分钟前
QCommandLineParser 学习
学习
小诗懂技术39 分钟前
V4L2视频采集流程复习笔记
笔记·mysql·音视频
minglie11 小时前
幂电枢与幂剩余
学习
优化Henry1 小时前
5G站点AAS-3设备故障排查与处理
运维·学习·5g·信息与通信
马可家的菠萝2 小时前
个人知识库怎么建?从一个正在学的技术主题开始
前端·笔记·知识管理·个人知识库
andrsted2 小时前
练题簿在线免费刷题:个人备考,从练新题到模拟自测怎么用?
学习·微信小程序·小程序·学习方法·刷题
ss2732 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 17 PostgreSQL SQL高级查询:窗口函数、CASE、COALESCE
数据库·笔记·postgresql
叶子丶苏2 小时前
提示词工程格式四段式与少样本-VibeCoding入门笔记06
人工智能·笔记