ESP32在Arduino下与屏幕交互除了可以使用TFT_eSPI,还可以使用更高级的LVGL。
配置步骤
- 先配置TFT_eSPI,因为lvgl基于TFT_eSPI。
- 克隆lvgl git 到Arduino的libraries目录
- 移动其下的
demos
和examples
目录到src
目录下 - 拷贝lv_conf_templat.h到libraries目录下并命名为
lv_conf_templat.h
- 编辑
lv_conf_templat.h
,开头设置为1,并把需要使用的demo从0改为1 - 打开
examples/arduino
下的示例,修改相关参数,比如开头的屏幕宽高,还有setup()
中要测试的demo。 - 由于example中用到了触摸函数,所以要改下
TFT_eSPI/User_Setup.sh
,指定TOUCH_CS
的针脚IO。
PS:TFT_eSPI和lvgl也都可以通过Arduino自带的库管理安装,只是版本相对不怎么新。
优化点
- 屏幕,320*480以上为佳;
- 增加
LV_MEM_SIZE
,默认是48KB,benchmark结果FPS 44,增加到128后FPS提升到46; - 调整屏幕方向,横坚切换后FPS上升到69。增加
LV_MEM_SIZE
到128后FPS上升到75!
如果要在MicroPython下使用lvgl,请参考ESP32自己编译原版和带LVGL的MicroPython