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篇的主要内容,如果未能解决你的问题,请参考以下文章
什么是使用 Pango 使用 FreeType 字体将文本渲染为图像的简单示例?
字体实际效果,FreeType的字号,对应Windows字体的高度