|
本帖最后由 沒有你 于 2021-9-5 23:07 編輯
ESP32-S2帶有LCD接口,可以驅動8080并口的屏幕,手頭剛好有一塊4.3寸屏幕,買了一個ESP32-S2最小系統,就可以開整了。一、搭建ESP32-S2開發環境
開發ESP32-S2需要搭建開發環境,從樂鑫官網可以找到教程,地址:https://docs.espressif.com/proje ... /windows-setup.html,打開網站找https://dl.espressif.com/dl/esp-idf-tools-setup-2.4.exe下載安裝即可,如果安裝過程中出現問題,需要看一下官網的教程,另外有一個好的網絡環境也是很重要的。
二、下載ESP32官方的例程
這里參考官方一款開發板esp32-s2-hmi-devkit-1,github地址如下:https://github.com/espressif/esp ... p32-s2-hmi-devkit-1,打開后,發現components\lvgl\lv_examples和components\lvgl\lvgl都是空白的,所以需要從littleVGL官網下載源碼的例程,再把源碼和例程復制進來即可
三、下載littleVGL源碼和例程
目前littleVGL已經更新到8.02,不過考慮到穩定性,我使用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開發工具,所有添加的源文件和頭文件需要添加到CMakeLists.txt下添加,在原有的基礎上添加lv_examples的源文件和頭文件路徑即可,完整文件如下所示:- idf_component_register(
- SRC_DIRS
- # LVGL Main SRC
- "lvgl/src/lv_core"
- "lvgl/src/lv_draw"
- "lvgl/src/lv_font"
- "lvgl/src/lv_gpu"
- "lvgl/src/lv_hal"
- "lvgl/src/lv_misc"
- "lvgl/src/lv_themes"
- "lvgl/src/lv_widgets"
- # LVGL porting
- "lv_port"
- # LVGL Examples
- "lv_examples/src/assets"
- "lv_examples/src/lv_demo_benchmark"
- "lv_examples/src/lv_demo_music"
- "lv_examples/src/lv_demo_music/assets"
- "lv_examples/src/lv_demo_printer"
- "lv_examples/src/lv_demo_printer/images"
- "lv_fonts"
- INCLUDE_DIRS
- # Config and defination at current path
- "."
- #LVGL main repo
- "lvgl"
- "lvgl/src/lv_core"
- "lvgl/src/lv_draw"
- "lvgl/src/lv_font"
- "lvgl/src/lv_gpu"
- "lvgl/src/lv_hal"
- "lvgl/src/lv_misc"
- "lvgl/src/lv_themes"
- "lvgl/src/lv_widgets"
- # LVGL porting
- "lv_port/include"
- #LVGL examples
- "lv_examples"
- "lv_examples/src/assets"
- "lv_examples/src/lv_demo_music"
- "lv_examples/src/lv_demo_music/assets"
- "lv_examples/src/lv_demo_benchmark"
- "lv_examples/src/lv_demo_printer"
- REQUIRES
- bsp
- i2c_devices)
- # LVGL might have warnings. Just ignore them
- target_compile_options(${COMPONENT_LIB} PRIVATE
- -w)
復制代碼
五、修改屏幕驅動 手頭的4.3寸屏幕驅動IC型號是NT35510,工程默認的RM68120,需要做修改。我使用的是helloworld工程,打開ESP-IDF PowerShell,切換到\examples\get-started\hello_world下,輸入idf.py menuconfig,選擇HMI_Board_Config選擇LCD_Driver選擇NT35510。
屏幕配置.PNG (13.73 KB, 下載次數: 127)
下載附件
2021-8-29 17:20 上傳
在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配置參數 |
-
編譯結果.PNG
(108.38 KB, 下載次數: 210)
下載附件
2021-8-29 17:40 上傳
-
燒錄結果.PNG
(56.7 KB, 下載次數: 223)
下載附件
2021-8-29 17:44 上傳
-
實物.jpg
(99.47 KB, 下載次數: 239)
下載附件
2021-9-5 23:07 上傳
-
-
esp32s2.7z
2021-8-29 19:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
17.39 MB, 下載次數: 108, 下載積分: 黑幣 -5
評分
-
查看全部評分
|