1 Star 1 Fork 2

马志良/lv_port_esp32_iot_kit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
4年前
Loading...
README
MIT

LVGL project for ESP32-IOT-KIT

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.


如何使用

  1. 递归clone本代码:
git clone --recurse-submodules https://github.com/ZhiliangMa/lv_port_esp32_iot_kit.git
  1. 确保电脑已有 ESP-IDF V4.2 环境,cd 移动到工程目录。

  2. 编译

idf.py build
  1. 下载烧录
idf.py flash

即可在液晶屏上看到下图显示。

电容触摸屏可用,可进行拖拽、滑动操作,开发板配套的FT6236U 为单点电容屏。

ESP32-IOT-KIT开发板图1


同时开发板允许使用上方的 J5接口,去插接额外的LCD模组。

ESP32-IOT-KIT开发板图2


运行正视图。

ESP32-IOT-KIT开发板图


Demo演示和帧率

此工程可通过图形化设置项,去运行的有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_musiclv_demo_printerlv_ex_get_startedlv_ex_stylelv_ex_widgets 导入运行。


优化刷屏帧率

  • 工程内默认配置使用IRAM,默认使用行像素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%。

  • 个人小结:80MHz的SPI刷屏速率不具备普适性,绝大多数的SPI屏幕能支持的速率还是40MHz。虽然80MHz可以用,而盲目的将SPI速率增大到80MHz只会增加不稳定性。从测试结果可以看出,在ESP32的主频为240MHz时,SPI速率为40MHz和80MHz带来的影响并不是特别的大,而为了稳定性,更建议使用SPI为40MHz的配置。

配套Visual Studio模拟器

  • 因本工程的LVGL版本为V7.9,故模拟器也应该使用V7版本的。递归clone,VS模拟器的v7版本分支:
git clone --recurse-submodules -b release/v7 https://github.com/lvgl/lv_sim_visual_studio.git

ESP32-IOT-KIT 开发板硬件资源

  • ADC * 2(电池、光照强度。电源可程控)
  • 按键 * 4(BOOT、用户按键。还有两个是 复位 和 电池电量指示)
  • 触摸按键 * 1
  • 用户 LED * 1(同IO扩展 WS2812B灯带)
  • 38KHz 红外接收、发射
  • RS485、CAN(同IO复用,也可复用为UART等使用)
  • I2C外设 * 4(ICM-20600六轴惯性IMU、SHT30温湿度、PCF8563 - RTC,还有在背部的电容触摸屏FPC座)
  • 2.0寸单点电容触摸屏(320*240分辨率。液晶屏使用SPI、电容触摸I2C)
  • 扩展:LCD/OLED/SPI 扩展接口。I2C扩展接口。3.3/5V电源扩展接口。
  • TF卡接口(SPI)。
  • 以太网扩展接口。(可插接 LAN8720 有线以太网模组)
  • TypeC 供电、下载、调试接口。
  • 板载CH340自动下载电路,最高波特率为 2Mbps。
  • 板载18650电池座,和充放电电源管理芯片,仅用板载电池即可提供3.3V和5V的2A电源输出。且3.3V电压轨为UPS,可保持板载硬件的不断电运行。

注意事项

  • 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多个。更多信息请前往我的GithubCSDN博客

  Easyio lib - Github

  Easyio驱动库 - CSDN

MIT License Copyright (c) 2019 Littlev Graphics Library Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

适配ESP32-IOT-KIT的LVGL v7工程,默认搭配ST7789V+FT6236U单点电容触摸屏使用。不套路,源码开源,PCB工程开源。 展开 收起
README
MIT
取消

发行版

暂无发行版

近期动态

3年多前创建了仓库
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ZhiliangMa/lv_port_esp32_iot_kit.git
git@gitee.com:ZhiliangMa/lv_port_esp32_iot_kit.git
ZhiliangMa
lv_port_esp32_iot_kit
lv_port_esp32_iot_kit
master

搜索帮助