【STM32 LVGL基础教程】初识LVGL

news2025/1/10 1:41:01

文章目录

  • 前言
  • 一、什么是LVGL?
  • 二、LVGL的诞生历程
  • 三、LVGL的用途
  • 四、模拟器使用LVGL
    • 4.1 下载codeblocks并运行模拟器lvgl
    • 4.2 更改lvgl设置
      • 更改帧数
      • 更改颜色深度
  • 五、STM32使用LVGL
  • 总结


前言

嵌入式系统中的图形用户界面(GUI)已经成为现代设备不可或缺的一部分。STM32系列微控制器广泛用于各种嵌入式应用中,而LittlevGL(LVGL)是一个强大的开源库,用于在STM32上创建出色的GUI。本文将深入探讨LVGL的基础知识,带您了解这个引人注目的库。


一、什么是LVGL?

LVGL,全称为Littlev Graphics Library,是一个轻量级、可嵌入的GUI库,专门为嵌入式系统设计。它是一个开源项目,提供了丰富的图形界面元素和功能,可用于创建各种用户界面,从小型嵌入式设备到大型仪器控制面板。

二、LVGL的诞生历程

LVGL的发展始于2014年,由Gábor Kiss-Vámosi创立。它最初是为Gábor的个人项目而开发的,但后来逐渐成长为一项强大的开源工具。随着时间的推移,LVGL社区逐渐壮大,得到了全球范围内嵌入式系统开发者的广泛支持和贡献。

三、LVGL的用途

LVGL主要用途包括但不限于以下几个方面:

嵌入式设备界面:LVGL适用于各种嵌入式设备,如智能家居控制面板、医疗设备、工业控制面板等,提供直观的用户界面。

图形显示:它支持各种图形元素,包括文本、按钮、图像、图表等,使您能够创建吸引人的图形界面。

跨平台兼容性:LVGL不仅可以在STM32上运行,还支持多个平台,包括Arduino、ESP32、Raspberry Pi等。

动画和效果:LVGL允许您创建平滑的动画和过渡效果,提高用户体验。

如何在STM32上使用LVGL
在STM32上使用LVGL需要一些步骤:

配置开发环境:首先,您需要配置STM32开发环境,包括安装相应的工具链和IDE。

安装LVGL库:下载LVGL库并将其集成到您的项目中。您可以从LVGL官方网站或GitHub仓库获取最新版本。

创建LVGL应用:编写您的STM32应用程序,并在其中使用LVGL库来创建用户界面。

初始化和事件处理:初始化LVGL库,并设置事件处理程序来处理用户交互。

编译和烧录:编译您的应用程序,并将其烧录到STM32微控制器中。

测试和调试:在目标设备上测试您的LVGL应用程序,并进行必要的调试和优化。

四、模拟器使用LVGL

4.1 下载codeblocks并运行模拟器lvgl

我们使用的lvgl模拟器用到的是百问网的资料百问网lvgl
可以在这里下载到源码和codeblocks编译器,下载好后,使用codeblock打开如下:
在这里插入图片描述

然后我们可以点击这个按钮进行编译运行:
在这里插入图片描述

4.2 更改lvgl设置

更改帧数

在lvgl中,他的帧数默认是33,因为他是嵌入式的嘛,放在板子上,cpu没那么强,所以默认33,那么我们在模拟器中看肯定就可以设置到底啊,那如何设置呢?

1、打开项目文件夹
2、搜索lv_conf
在这里插入图片描述
3、打开lv_conf.h
4、更改代码
在这里插入图片描述
这里的1就是1ms刷新一下,那么1s刷新1000下就是1000帧

更改颜色深度

1、打开lv_conf文件
2、搜索下面这个宏
在这里插入图片描述
根据提示更改后面的数值,这个数值在后面我们使用sqarekine studio的时候需要注意,所以这里先给大家说一下.

最后保存,然后打开codeblocks运行.
在这里插入图片描述
可以看到现在就是1000FPS了

五、STM32使用LVGL

STM32的话建议直接使用正点原子的lvgl,不需要配置直接使用,如下图:
在这里插入图片描述
大家自行找到自己的stm32的示例例程


总结

LittlevGL(LVGL)是一个强大的开源GUI库,适用于各种嵌入式系统,包括STM32。它的诞生历程展示了开源社区的力量和合作,使得嵌入式界面开发更加容易。通过本文,您了解了LVGL的基础知识以及如何在STM32上使用它,希望这些信息能帮助您开始创建出色的嵌入式GUI应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1053809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小说推文和短剧推广以及电影达人带货电影票

小说推文、短剧推广、电影达人(带或电影票)都可以通过“巨量推文“进行申请授权 小说推文和短剧推广是什么? 小说推文和短剧推广的逻辑其实一样,分为cpa拉新和cps分成的推广形式 cpa拉新是你推广的用户必须为新用户&#xff0c…

【 SuperPoint 】图像特征提取上的对比实验

1. SIFT,SuperPoint 都具有提取图片特征点,并且输出特征描述子的特性,本篇文章从特征点的提取数量,特征点的正确匹配数量来探索一下二者的优劣。 SuperPoint提取到的特征点数量要少一些,可以理解,我想原因大…

mac如何卸载应用并删除文件,2023年最新妙招大公开!

大家好,今天小编要为大家分享一些关于mac电脑的小技巧,特别是关于如何正确卸载应用程序以及清理卸载后的残留文件。你知道吗?很多人都不知道,mac系统默认的卸载方式可能会导致一些残留文件滞留在你的电脑上,慢慢地占用…

算法竞赛备赛之贪心算法训练提升,贪心算法基础掌握

1.区间问题 905.区间选点 给定N个闭区间[ai, bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量,位于区间端点上的点也算作是区间内。 将每个按区间的右端点从小到大排序 从前往后依次枚举每…

VS Code 如何搭建 C/C++开发环境

目录 VScode是什么? VScode的下载和安装? 2.1 下载和安装 安装: 2.2 环境的介绍 环境介绍:​编辑 安装中文插件: VScode配置 C/C 开发环境 3.1 下载和配置MinGW-w64 编译器套件 下载: 配置MinGW64: 3.2 安…

排序篇(六)----排序小结

排序篇(六)----排序小结 排序算法复杂度及稳定性分析 直接插入排序的算法复杂度: 最好情况下,当数组已经有序时,直接插入排序的时间复杂度为O(n),其中n是数组的大小。最坏情况下,当数组逆序排列时,直接插…

【python海洋专题二】读取水深nc文件并水深地形图

【python海洋专题二】读取水深nc文件并水深地形图 海洋与大气科学 导入函数包 from netCDF4 import Dataset import numpy as np import matplotlib.pyplot as plt 前两个上期更新说明了:第一个读取nc文件,第二个用于计算。 matplotlib.pyplot&#xf…

Audacity 使用教程:轻松录制、编辑音频

Audacity 使用教程:轻松录制、编辑音频 1. 简介 Audacity 是一款免费、开源且功能强大的音频录制和编辑软件。它适用于 Windows、Mac 和 Linux 等多种操作系统,适合音乐制作、广播后期制作以及普通用户进行音频处理。本教程将带领大家熟悉 Audacity 的…

Linux 基本语句_4_指针和函数

指针函数 顾名思义&#xff0c;即返回值为指针的函数 int * f (int n){int *p NULL;//空指针return p;//返回一个地址 }函数指针 指向函数的指针&#xff0c;每个函数都有自己的入口地址&#xff0c;函数指针专门指向这些地址#include <stdio.h>int max(int a, int b)…

【LeetCode热题100】--226.翻转二叉树

226.翻转二叉树 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

10.1 File类

前言&#xff1a; java.io包中的File类是唯一一个可以代表磁盘文件的对象&#xff0c;它定义了一些用于操作文件的方法。通过调用File类提供的各种方法&#xff0c;可以创建、删除或者重命名文件&#xff0c;判断硬盘上某个文件是否存在&#xff0c;查询文件最后修改时间&…

HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题

目录 一、GET与POST简介 二、空行和body 三、初识请求报头以及粘包问题 四、认识请求报头剩余部分 一、GET与POST简介 GET https://www.sogou.com/HTTP/1.1 请求报文中的方法&#xff0c;是最常规的方法&#xff08;获取资源&#xff09; POST&#xff1a;传输实体主体的方法…

MACH架构的质量工程指南

MACH是快速创建高质量应用的最佳实践&#xff0c;同时也意味着有助于团队内的质量工程。本文介绍了MACH在质量工程领域所起的作用&#xff0c;并介绍了成功的MACH架构必备的8个要素。原文: MACH Architecture: The Quality Engineering Guide MACH和质量工程有关。 在过去几年里…

点餐小程序实战教程02用户注册

按照我们的需求分析&#xff0c;本篇开始我们进入到具体的开发部分。低代码开发的基础是先创建数据源&#xff0c;我们本篇介绍用户注册功能&#xff0c;先需要创建一个用于存放用户信息的数据源。 1 用户分类 未使用过低代码工具的初学者&#xff0c;可能对低代码的用户分类…

集合-ArrayList源码分析(面试)

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 目录 系列文章目录 前言 一 . 什么是ArrayList? 二 . ArrayList集合底层原理 总结 前言 大家好,今天给大家讲一下Arra…

【LeetCode热题100】--94.二叉树的中序遍历

94.二叉树的中序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {…

Ubuntu安装zsh之后搜狗起不来

1. 问题描述 装了Ubuntu22.04后&#xff0c;先装了搜狗&#xff0c;再装了zsh&#xff0c;装完zsh之后发现搜狗起不来了&#xff0c;重装搜狗和fcitx之后还是起不来&#xff0c;在此记录解决过程。 2. 解决方法 参考博客: 配置zsh后&#xff0c;无法通过 DBus 连接到 Fcitx,…

2023年中国劳保用镜市场规模现状及行业需求前景分析[图]

眼睛对人体的重要性可谓不言而喻。同时&#xff0c;眼睛也是很脆弱的人体器官。特别是在生产过程中&#xff0c;由于异物、有毒气体等侵害&#xff0c;眼睛就很容易受伤&#xff0c;随着现代工业的发展&#xff0c;劳保镜已成为一种必不可少的工具&#xff0c;它不仅可以保护工…

ARTS 打卡 第四周,游刃有余

引言 时间过得好快&#xff0c;已经到了第四周学习打卡环节&#xff0c;也是本次活动的最后一周。认识三掌柜的想必都知道&#xff0c;我持续创作技术博客已经有6年时间了&#xff0c;固定每个月发布不少于6篇博文。同时&#xff0c;自己作为一名热爱分享的开发者&#xff0c;像…

jmh的OperationsPerInvocation参数

背景 最近再看fllink的性能基准测试时&#xff0c;发现它使用了OperationsPerInvocation注解&#xff0c;本文就来记录下这个注解的含义 官方解释 从官方文档&#xff1a;http://javadox.com/org.openjdk.jmh/jmh-core/0.9/org/openjdk/jmh/annotations/OperationsPerInvoca…