This is an ESP32 demo project showcasing LVGL v7 with support for several display controllers and touch controllers.
此工程fork自 lvgl/lv_port_esp32
修改了 sdkconfig
,以适配ESP32-IOT-KIT
开发板的 ST7789V + FT6236U
单点电容屏。
Version of ESP-IDF required 4.2.
Version of LVGL used: 7.9.
git clone --recurse-submodules https://github.com/ZhiliangMa/lv_port_esp32_iot_kit.git
确保电脑已有 ESP-IDF V4.2
环境,cd
移动到工程目录。
编译
idf.py build
idf.py flash
即可在液晶屏上看到下图显示。
电容触摸屏可用,可进行拖拽、滑动操作,开发板配套的FT6236U
为单点电容屏。
同时开发板允许使用上方的 J5
接口,去插接额外的LCD模组。
运行正视图。
此工程可通过图形化设置项,去运行的有4个Demo。
Component config
>> lv_examples configuration
>> Select the demo you want to run
分别为:
Show demo widgets。控件演示,使能Set IRAM as LV_ATTRIBUTE_FAST_MEM
后,320x240分辨率,帧率约为20FPS。
Demonstrate the usage of encoder and keyboard。可以很好的演示触摸屏和一些拖拽控件,无动作时满帧,有拖动动作时不算特别流畅。
Benchmark your system。跑分,测试系统刷图成绩。
Stress test for LVGL。压力测试,帧率抖动明显。
除这4个意外,还可手动改动代码,将 lv_port_esp32_iot_kit\components\lv_examples\lv_examples\src
目录下的 lv_demo_music
、lv_demo_printer
、lv_ex_get_started
、lv_ex_style
、lv_ex_widgets
导入运行。
行像素
x40行
x2
字节的双BUFF。运行benchmark
跑分Demo的成绩为:40M SPI速度、IRAM开启、320x40x2字节双缓存、160MHz主频。FPS:41。OPS:75%。
更快的刷屏方式1:将SPI的刷屏速率,由40MHz提高到80MHz。但很有可能会出现花屏,降低稳定性。(ESP32-IOT-KIT使用ST7789V+FT6236U单点电容屏组合时,以80MHz刷屏时,需将TF卡插入,会解决绝大多数的花屏问题)
【修改SPI速率的测试结果,运行benchmark
跑分Demo的成绩】:
40M SPI速度、IRAM开启、320x40x2字节双缓存、160MHz主频。FPS:41。OPS:75%。
80M SPI速度、IRAM开启、320x40x2字节双缓存、160MHz主频。FPS:52。OPS:68%。
更快的刷屏方式1:将ESP32的运行主频,由160MHz提高到240MHz。为了降低功耗,IDF工程一般都是使用ESP32的160MHz去运行,调整为240MHz后会提高MCU的运算能力,从而提高LVGL的刷屏帧率。(menuconfig中寻找CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
,此项可调整ESP32的默认主频)
【修改ESP32主频的测试结果,运行benchmark
跑分Demo的成绩】:
40M SPI速度、IRAM开启、320x40x2字节双缓存、160MHz主频。FPS:41。OPS:75%。
40M SPI速度、IRAM开启、320x40x2字节双缓存、240MHz主频。FPS:53。OPS:82%。
80M SPI速度、IRAM开启、320x40x2字节双缓存、240MHz主频。FPS:60。OPS:78%。
git clone --recurse-submodules -b release/v7 https://github.com/lvgl/lv_sim_visual_studio.git
ESP32-IOT-KIT
开发板硬件资源ESP-IDF
环境建议使用 V4.2.2
。
工程设置项的SPI
刷屏速率为 40MHz
,以确保绝大多数使用者可以无误运行此demo。
如需修改SPI
刷屏速率,请参考我的博客 ESP32+st7789/ili9341运行LVGL例程。
开发板配套的 ST7789V + FT6236U
单点电容屏模组,支持最大 80MHz
的SPI速率。但配置为80MHz
时可能会出现轻微花屏,此时建议将TF卡插入右侧TF卡槽中,即可解决绝大多数问题,实现完美刷屏。
Easyio
库推荐 Easyio
是一款适配于ESP-IDF
框架的开源驱动库
,以支持ESP32
的简便开发。其目的是在保持官方SDK灵活性的同时,大幅度简化乐鑫ESP-IDF
开发框架的使用难度。(方便的话,有开源的Arduino和Platform可以用,但在工作上有时会硬性要求使用ESP-IDF
,毕竟要对接FAE,于是就萌生了搞个 Easyio
的想法)
Easyio
已对 ESP32-IOT-KIT
开发板进行了全面支持,可用Demo达50多个。更多信息请前往我的Github
或CSDN博客
。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。