找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9503|回復: 11
打印 上一主題 下一主題
收起左側

ESP32-S2驅動4.3寸屏幕顯示littleVGL例程

  [復制鏈接]
跳轉到指定樓層
樓主
ID:351097 發(fā)表于 2021-8-29 17:55 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 沒有你 于 2021-9-5 23:07 編輯

  ESP32-S2帶有LCD接口,可以驅動8080并口的屏幕,手頭剛好有一塊4.3寸屏幕,買了一個ESP32-S2最小系統(tǒng),就可以開整了。一、搭建ESP32-S2開發(fā)環(huán)境
  開發(fā)ESP32-S2需要搭建開發(fā)環(huán)境,從樂鑫官網可以找到教程,地址:https://docs.espressif.com/proje ... /windows-setup.html,打開網站找https://dl.espressif.com/dl/esp-idf-tools-setup-2.4.exe下載安裝即可,如果安裝過程中出現(xiàn)問題,需要看一下官網的教程,另外有一個好的網絡環(huán)境也是很重要的。

二、下載ESP32官方的例程
  這里參考官方一款開發(fā)板esp32-s2-hmi-devkit-1,github地址如下:https://github.com/espressif/esp ... p32-s2-hmi-devkit-1,打開后,發(fā)現(xiàn)components\lvgl\lv_examples和components\lvgl\lvgl都是空白的,所以需要從littleVGL官網下載源碼的例程,再把源碼和例程復制進來即可
三、下載littleVGL源碼和例程
  目前l(fā)ittleVGL已經更新到8.02,不過考慮到穩(wěn)定性,我使用7.11版本。littleVGL例程網址:https://github.com/lvgl/lv_demos/releases/tag/v7.11.0
littleVGL源碼網址:https://github.com/lvgl/lvgl/releases/tag/v7.11.0
四、填充esp32-s2-hmi-devkit-1空白文件
    由于esp32-s2-hmi-devkit-1的工程下的components\lvgl目錄下的lv_examples和lvgl是空白的,所以需要把下載lvgl-7.11.0文件夾下的所有文件復制到components\lvgl\lv_examples下,把lv_demos-7.11.0文件夾下的所有文件復制到components\lvgl\lvgl下。進入components\lvgl\lv_examples下復制lv_ex_conf_template.h到components\lvgl,名字改成lv_ex_conf.h。打開lv_ex_conf.h,修改三個地方:第一行的#if 1,使能宏#define LV_EX_PRINTF ,使能宏#define LV_USE_DEMO_PRINTER。這樣就可以使用DEMO_PRINTER演示了。esp32構建工程用到Cmake開發(fā)工具,所有添加的源文件和頭文件需要添加到CMakeLists.txt下添加,在原有的基礎上添加lv_examples的源文件和頭文件路徑即可,完整文件如下所示:
  1. idf_component_register(
  2.     SRC_DIRS
  3.         # LVGL Main SRC
  4.         "lvgl/src/lv_core"
  5.         "lvgl/src/lv_draw"
  6.         "lvgl/src/lv_font"
  7.         "lvgl/src/lv_gpu"
  8.         "lvgl/src/lv_hal"
  9.         "lvgl/src/lv_misc"
  10.         "lvgl/src/lv_themes"
  11.         "lvgl/src/lv_widgets"
  12.         # LVGL porting
  13.         "lv_port"
  14.         # LVGL Examples
  15.         "lv_examples/src/assets"
  16.         "lv_examples/src/lv_demo_benchmark"
  17.         "lv_examples/src/lv_demo_music"
  18.         "lv_examples/src/lv_demo_music/assets"
  19.         "lv_examples/src/lv_demo_printer"
  20.         "lv_examples/src/lv_demo_printer/images"
  21.         "lv_fonts"
  22.     INCLUDE_DIRS
  23.         # Config and defination at current path
  24.         "."
  25.         #LVGL main repo
  26.         "lvgl"
  27.         "lvgl/src/lv_core"
  28.         "lvgl/src/lv_draw"
  29.         "lvgl/src/lv_font"
  30.         "lvgl/src/lv_gpu"
  31.         "lvgl/src/lv_hal"
  32.         "lvgl/src/lv_misc"
  33.         "lvgl/src/lv_themes"
  34.         "lvgl/src/lv_widgets"
  35.         # LVGL porting
  36.         "lv_port/include"
  37.         #LVGL examples
  38.         "lv_examples"
  39.         "lv_examples/src/assets"
  40.         "lv_examples/src/lv_demo_music"
  41.         "lv_examples/src/lv_demo_music/assets"
  42.         "lv_examples/src/lv_demo_benchmark"
  43.         "lv_examples/src/lv_demo_printer"
  44.     REQUIRES
  45.         bsp
  46.         i2c_devices)

  47. # LVGL might have warnings. Just ignore them
  48. target_compile_options(${COMPONENT_LIB} PRIVATE
  49.     -w)
復制代碼



五、修改屏幕驅動  手頭的4.3寸屏幕驅動IC型號是NT35510,工程默認的RM68120,需要做修改。我使用的是helloworld工程,打開ESP-IDF PowerShell,切換到\examples\get-started\hello_world下,輸入idf.py menuconfig,選擇HMI_Board_Config選擇LCD_Driver選擇NT35510。

在lvgl_port.c中,修改屏幕驅動為NT35510,scr_find_driver(SCREEN_CONTROLLER_NT35510, &lcd);
六、添加觸摸驅動
  手頭的4.3寸屏幕觸摸驅動IC型號是gt9147,工程中沒有這個IC的驅動,需要自己添加,下面是我自己的一個驅動,可以作為參考,源碼如下
[code]#include "gt9147.h"

#define TAG "GT9147"

#define gt9147_rst    42
#define gt9147_int    41
#define gt9147_OUTPUT_PIN_SEL  ((1ULL<<gt9147_rst) | (1ULL<<gt9147_int))

const uint16_t GT9147_TPX_TBL[5]={GT_TP1_REG,GT_TP2_REG,GT_TP3_REG,GT_TP4_REG,GT_TP5_REG};


//GT9147配置參數(shù)

編譯結果.PNG (108.38 KB, 下載次數(shù): 210)

編譯結果.PNG

燒錄結果.PNG (56.7 KB, 下載次數(shù): 223)

燒錄結果.PNG

實物.jpg (99.47 KB, 下載次數(shù): 239)

實物.jpg

esp32s2.7z

17.39 MB, 下載次數(shù): 108, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:963450 發(fā)表于 2021-9-2 08:44 | 只看該作者
請問,問什么我不能生成HMI_Board_Config的界面?
回復

使用道具 舉報

板凳
ID:351097 發(fā)表于 2021-9-2 11:39 | 只看該作者
青青子欽 發(fā)表于 2021-9-2 08:44
請問,問什么我不能生成HMI_Board_Config的界面?

用idf.py build指令可以編譯通過嗎?
回復

使用道具 舉報

地板
ID:963450 發(fā)表于 2021-9-3 10:07 | 只看該作者
沒有你 發(fā)表于 2021-9-2 11:39
用idf.py build指令可以編譯通過嗎?

我移植的是lvgl8.0,D:\QT\屏幕截圖 2021-09-03 095904.jpg可以build
回復

使用道具 舉報

5#
ID:964411 發(fā)表于 2021-9-6 17:05 | 只看該作者
這個操作,怎么不能調出LVGL本身的 配置UI呢
回復

使用道具 舉報

6#
ID:351097 發(fā)表于 2021-9-6 21:40 | 只看該作者
haiyang00 發(fā)表于 2021-9-6 17:05
這個操作,怎么不能調出LVGL本身的 配置UI呢

ESP32-S2的8080屏幕用的是驅動不是littleVGL官網的標準驅動,所以沒有用littleVGL自帶的kconfig。你可以把littleVGL源碼的kconfig文件復制到上一級目錄,即components\lvgl目錄,然后輸入idf.py menuconfig,可以進入Component config → LVGL configuration
回復

使用道具 舉報

7#
ID:232306 發(fā)表于 2021-9-8 18:56 | 只看該作者
感謝樓主分享,正需要這個!給樓主點贊。!
回復

使用道具 舉報

8#
ID:583419 發(fā)表于 2021-9-9 17:28 | 只看該作者
非常棒!沒有esp32s2,請問一下用ESP32可以么?
回復

使用道具 舉報

9#
ID:351097 發(fā)表于 2021-9-11 16:12 | 只看該作者
MilkPower 發(fā)表于 2021-9-9 17:28
非常棒。]有esp32s2,請問一下用ESP32可以么?

應該也是支持的,可以試試
回復

使用道具 舉報

10#
ID:583419 發(fā)表于 2021-9-16 15:46 | 只看該作者
我這里也用了正點原子的4.3電容屏,然后踩了個大坑。gt9147觸摸IC停產,現(xiàn)在的已經換成GT1151Q,讀觸摸的產品ID是1158。弄了幾天,差點否定自我。。。等我換好觸摸驅動再來支持~
回復

使用道具 舉報

11#
ID:382555 發(fā)表于 2021-10-22 10:18 | 只看該作者
你好 如果用其他屏幕驅動改怎么添加 比例我用的是ILI9488
回復

使用道具 舉報

12#
ID:849376 發(fā)表于 2022-4-20 13:08 | 只看該作者
喬峰gao 發(fā)表于 2021-10-22 10:18
你好 如果用其他屏幕驅動改怎么添加 比例我用的是ILI9488

我也想問這個
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表