LVGL8.X
文章平均质量分 70
LVGL8.X 版本教程
zhbi98
学习编程并不是一件轻而易举的事情,是需要时间的,在快时代背景下,我们其实更应该保持耐心,多给自己一点时间,
罗马不是一日建成的,沉住气做最优
展开
-
LVGL8.3动画图像(太空人)
我们知道电影属于视频,而电影的本质是将一系列动作的静态图像进行快速切换而呈现出动画的形式,也就是说动画本质是一系列照片。所以lvgl依照这样的思想而定义了动画图像,所以在lvgl中动画图像类似于普通的静态图像对象。唯一的区别是,动画图像设置了一个由多个源图像组成的数组,而不仅仅指定一个源图像。原创 2024-06-23 17:19:47 · 2279 阅读 · 4 评论 -
LVGL8.3 对象和内存详解
在创建 LVGL 的组件时,对应的创建组件的 create 函数会从 LVGL 的堆栈中分配一块内存去保存描述组件(位置,尺寸,颜色)样式信息的属性,属性的类型为lv_obj_t结构体,该结构体继承了结构体的内容。所以需要声明一个lv_obj_t *的指针指向保存组件样式属性这段内存的首地址,LVGL 的堆栈的大小在lv_conf.h0==048U1024U0==0。原创 2023-09-05 13:38:15 · 3475 阅读 · 14 评论 -
lvgl8.2 img 图片显示
1. lvgl 图片显示源为了提供良好的图片显示灵活性,所以显示图像的来源可以是以下三种代码中的一个变量(一个带有像素颜色数据的 C 数组)。存储在外部的文件(比如 SD 卡)。带有符号的文本。2. 内部图片对于源码内部图片(将图片转换为图片数组)想要将 PNG,JPG 或 BMP 格式的图像生成像素颜色数据数组,这需要使用专门的图片转换工具,刚好 lvgl 官方也为我们提供了这样的工具,该工具为网页版本,所以需要联网在线使用。具体样式和使用方法如下图所示。具体链接:https原创 2022-04-06 08:27:07 · 28572 阅读 · 31 评论 -
lvgl8.2 自定义符号
1. 符号(symbol)符号即图标(在 lvgl 中称作 symbol)嵌入式设备使用的芯片存储空间有限,使用字库图标能极大的丰富界面,使得图形界面更加生动形象和易于理解,又能控制 ROM 的占用,lvgl 官方自带了 20 几个 symbol,在实际的使用过程中,已有的 symbol 一般无法满足所有的项目场景,此时就需要自己添加一些 symbol,下面将来说明如何在 lvgl 中使用我们自己设计或使用互联网上别人制作分享的 symbol。2. lvgl 官方 symbol3. 自定义符原创 2022-03-25 11:19:28 · 7924 阅读 · 10 评论 -
lvgl8.2 自定义字库
1. 官方在线字体转换工具lvgl 自带拥有一定数量的不同字号常用的 ASCII 字符字库,但是 lvgl 自带的字库一般无法适应我们所有的使用场景,比如我们需要的最大字号超出了已有字库的字号范围,我们需要使用中文字体等情况下我们就需要自定义字库(自制字库),基于这样的情况 lvgl 官方也为我们提供了字库的生成工具,该工具是网页版本需要在线使用。具体样式和使用方法如下图。转换工具链接:https://lvgl.io/tools/fontconverter2. 字库内容分析2.1 字库内容/原创 2022-03-19 13:43:57 · 4752 阅读 · 3 评论 -
lvgl8.2 log 组件对接串口
1. 启用 loglvgl 内置有日志模块,并使用 MCU 的串口实时输出用户库中正在发生的事情。要启用 lvgl 日志记录,需要用户在 配置文件 lv_conf.h 中将 LV_USE_LOG 条件编译宏定义设置为 1,这样就启用了 lvgl 的日志功能程序模块。但是仅仅配置该宏定义并无法输出日志。2. 实现串口字符串输出函数前面提到 lvgl 要能够输出信息需要依赖于 MCU 的串口,所以这一步我们需要编写实现 MCU 的串口驱动,但对于不同的串口驱动编写具有一定的差别这取决于具体使用的 M原创 2022-03-15 12:37:36 · 3393 阅读 · 0 评论 -
lvgl8.2 组件布局方式
1. 弹性布局1.1 弹性布局简介弹性布局可以将组件按行或按列排列,处理环绕调整项目和轨道之间的间距,处理 增长以使组件填充相对于 最小/最大宽度 和 高度 的剩余空间。 这种布局方式类似 java 图形界面框架 javaFX 的 HBox 和 VBox 布局方式。javaFX 的 HBox 和 VBox 布局方式如下图所示:但是相比 javaFX 的 HBox 和 VBox 布局 lvgl 的弹性布局不仅支持水平排列同时支持垂直纵向排列,所以严格意义来说 lvgl 的弹性布局与 jav原创 2022-03-10 14:46:29 · 8837 阅读 · 0 评论 -
lvgl8.2 分析画面刷新
1. 刷新疑问前面在将 lvgl 对接到屏幕驱动时可以知道 lvgl 可以支持局部刷新,所谓的局部刷新就是比如屏幕中显示了多个组件,比如有按钮,有标签,还有进度条,这时如果仅仅标签的内容发生变化那么 lvgl 只会将标签所在的屏幕位置内容重新刷新,所谓重新刷新就是将更新后的显存内容(内容即颜色数据)通过屏幕数据线重新传递给屏幕进行显示。这时就会产生疑问,lvgl 并没有给用户提供通知刷新的函数接口,lvgl 又是怎么知道标签的内容被改变了呢,lvgl 又怎么知道需要刷新位置具体的坐标呢2. l原创 2022-03-05 14:50:08 · 13916 阅读 · 6 评论 -
lvgl8.x 屏幕分层
1. lvgl 图层分层顶层 [top layer],lv_layer_top 。用户层 [user layer],lv_scr_act。系统层 [system layer],lv_layer_sys。2. lvgl 图层分层描述顶层:类似于 window 系统中任务栏处于顶层,任务栏不会被任何软件的窗口所遮盖,但可以被系统层图层所遮盖。用户层:类似于 window 系统中软件窗口所在的图层,用户层可被顶层和系统层图层所遮盖。系统层:类似于 window 系统中鼠标箭头所在的图层,鼠标箭原创 2022-02-25 17:06:11 · 2274 阅读 · 0 评论 -
lvgl8.x 对接实体按键驱动
1. lvgl 输入设备种类实体按键属于 lvgl 的输入设备中的一种,所以对接外部的硬件实体按键实际上就是为 lvgl 添加输入设备。为 lvgl 添加输入设备需要在 lv_port_indev.c 这个 c 文件中完成,注意这个文件并不存在于 lvgl src 源码文件夹下,而是位于 examples/porting 文件夹下,在这个目录下官方为我们准备好了对接模板文件,我们对这个模板文件进行修改即可。lvgl 的输入设备共有以下五种:Touchpad 触摸板,例如电容屏、电阻屏等Mous原创 2022-02-22 12:32:25 · 22904 阅读 · 58 评论 -
lvgl8.x 对接屏幕驱动
1. 屏幕驱动初始化屏幕驱动初始化函数位于 lv_port_disp.c 这个文件。上图中完整屏幕驱动初始化函数内容为:void lv_port_disp_init(void){ /*------------------------- * Initialize your display * -----------------------*/ disp_init(); /*----------------------------- *原创 2022-02-18 09:19:49 · 6435 阅读 · 7 评论 -
lvgl8.x 移植到 stm32f4
1. 对芯片的要求处理器 16,32 或 64 位微控制器或处理器时钟频率最低 16 MHz 时钟频率Flash/ROM 对于非常重要的组件要求大于 64 kB (建议大于180 kB)RAM 静态 RAM 使用量约 2 kB,取决于所使用的功能和对象类型堆栈:大于 2kB (建议大于 8 kB)动态数据(堆):大于 2 KB(如果使用多个对象,则建议大于 16 kB)。由 lv_conf.h 中的 LV_MEM_SIZE 宏进行设置显示缓冲区:大于水平分辨率像素(建议大于 10 行水平分原创 2022-02-16 08:53:16 · 4249 阅读 · 5 评论
分享