LGVL配合FreeType为可变字体设置字重-ESP32篇

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LGVL配合FreeType为可变字体设置字重-ESP32篇相关的知识,希望对你有一定的参考价值。

参考技术A

我们在 上篇 中已经实现了模拟器环境下可变字体字重的设置.

是时候掏出你吃灰已久的ESP32了.

本文会使用 PlatformIO 创建一个全新的项目,直到显示出现 上篇文章 末尾的动图为止.
如遇到问题,可参考"常见问题"内解答.

为了后续内容顺利进行下去,这里需要你安装好 VSCode ,并在VSCode上安装 PlatformIO 插件.

使用PlatformIO创建一个名为lvgl_with_freetype的项目

创建完毕后目录结构如下:

由于已经写过一篇点亮屏幕的 文章 ,故本文不做过多赘述,只说明一下区别.

之前的屏幕分辨率是135x240,这次的屏幕分辨率是240x240.

所以需要使用TFT_eSPI里面的 Setup24_ST7789.h

同时接线变更为

对应 Setup24_ST7789.h 里面内容

随便写点内容.测试下屏幕的点亮.

屏幕点亮以后,就可以开始移植LVGL了.

当前时间为2021.12.19, GitHub上LVGL 最新版本是8.1.1-dev

使用命令

获取LVGL后将其复制到lib文件夹下.此时文件目录为

platformio.ini文件内容

创建LVGL的配置文件,找到lvgl文件夹内的 lv_conf_templat.h ,复制一份 lv_conf_templat.h 并重命名为 lv_conf.h ,然后打开 lv_conf.h

为了使配置文件内容生效,找到第15行(其他版本的lvgl行数可能不在这里,需要自行寻找)

改为

找到第30行,修改颜色顺序

改为

找到第49行,启用自定义内存管理

修改为

找到第88行,设置自定义周期函数

修改为

找到第174行,启用LVGL日志功能

修改为

按照目录

创建 lv_port_disp.cpp 和 lv_port_disp.h

Toou.Anata wa watashi no masuta ka?

Q:点亮屏幕时候,编译器报找不到TFT_eSPI

A:检查TFT_eSPI是否集成
将TFT_eSPI放置在lib文件夹内,并向platformio.ini文件末尾添加

Q:在移植LVGL时候,屏幕颜色异常

A:可能与lv_conf.h文件内#define LV_COLOR_16_SWAP 0有关
可以尝试将此处的0改成1,或1改回0

以上是关于LGVL配合FreeType为可变字体设置字重-ESP32篇的主要内容,如果未能解决你的问题,请参考以下文章

FreeType2 - 字体更小

什么是使用 Pango 使用 FreeType 字体将文本渲染为图像的简单示例?

字体实际效果,FreeType的字号,对应Windows字体的高度

字体实际效果,FreeType的字号,对应Windows字体的高度

fedora25配置 Infinality 字体渲染增强

使用 Freetype 和 OpenGL 渲染字体