ESP32开发记录 LVGL篇(1)
概要
此篇文章是关于LVGL在esp32平台上的移植开发流程
工程版本信息
- 开发芯片模组:Esp32S3
- 开发平台: VScode + ESP-IDF
- LVGL版本:v8.3
LVGL移植流程
1.获取官方库
首先我们先从以下网址获取lvgl官方库 https://gitee.com/my_lvgl/lvgl
我这边使用的v8.3版本
2.开始移植工作
针对我们移植所需 只要LVGL库的以下几个文件就可以了
1.demos文件
2.examples文件(只需要包含porting文件)
3.src文件
3.调整接口函数
1.对于LVGL的使用,我们主要是应用一下几个接口函数,
lv_init();
是关于lvgl库相关功能的一些初始化工作,这边我们不详细赘述
lv_port_disp_init();
是显示部分所需要用到的函数,
针对缓存机制 各位可以按照自己使用cpu的资源情况来调整,第一种配置方式可能会出现刷新比较慢的情况,第二种情况属于双缓冲区刷新机制,前提是RAM资源充足,第三种刷新机制也是双缓冲,比对第二种它属于整屏刷新,占用资源量甚于前者
接下来是对于刷屏函数的填充以及屏幕大小参数的完善配置
lv_port_indev_init();
是触控部分所需要的函数,在此函数中我们只需要关注两个功能,就是判断是否触摸屏幕 以及 获取触摸点的x坐标以及y坐标信息。
最后就是提供lvgl的心跳以及实时处理函数
在esp32平台,我们按照上图方式配置好软件定时器进行定时任务执行,我配置的是5ms进行一次心跳数的自增lv_tick_inc(5) 。
切记 不能忘记定时调用 lv_timer_handler()这个函数,否则你的界面不会进行刷新
小结
此篇只是对于移植LVGL流程进行的一些简单教学,关于详细的移植内容以及出现的问题我们下篇继续说说
后续我会详细描述LVGL的一些使用方面的经历,以及自己在移植LVGL过程中遇到的一些问题和需要注意的细节部分,希望这篇多多少少能帮助到读者,共勉。