ESP32平臺開發LVGL圖形界面

2022-01-09 嵌入式系統

ESP32是一款強大的WiFi SOC,特別適用於物聯網WiFi設備上,對一些需要支持圖形界面的場景,ESP32+LVGL組合基本可以滿足需求。

LVGL的官方文檔簡單地描述了如何在ESP32上面移植LVGL,並且已經提供移植好的示例工程,開發者只需要作簡單的導入即可。LVGL關於ESP32的官方介紹頁面如下圖。

https://docs.lvgl.io/latest/en/html/get-started/espressif.html

以下是詳細的導入過程

1、從以上的文檔得知,LVGL官方創建了一個示例工程,lv_port_esp32,這個工程託管在github上面,但由於目前訪問github會出現不穩定的情況,所以,我們可以把github上的工程導入到gitee上,再通過gitee來進行下載,如下圖所示。

2、工程導入gitee成功後,就可以使用git clone命令,把工程項目下載到本地,如下圖所示。

命令:git clone https://gitee.com/embediot/lv_port_esp32

3、下載成功後,這個工程還沒有導入LVGL相關的代碼,LVGL相關的源碼和例程,是以組件的形式提供的,因此,LVGL的源碼保存在lv_port_esp32/components文件夾裡面,並且LVGL相關的源碼和例程,是使用git submodule的方式進行管理的,因此,我們需要更新submodule。

4、示例工程lv_port_esp32依賴三個submodule,分別是:

(1)lv_examples:這個是LVGL的示例demo,移植完之後可以使用這些demo驗證LVGL的運行。

(2)lvgl:這個是LVGL的原始碼,以C語言作為主要程式語言。

(3)lvgl_esp32_drivers:這個是一些移植和適配好的顯示屏和觸摸板的驅動代碼,LVGL為了方便開發者,已經幫我們適配好了一些比較常用的顯示屏和觸摸板。

5、這三個submodule的源碼是託管在github的,同樣由於github的訪問困難,需要把這三個submodule都同步到gitee,然後通過gitee進行更新,同步完之後,如下圖所示。

6、同步完成後,再修改lv_port_esp32/.gitmodules這個文件,把submodule的更新網址指向gitee,修改完成後,如下圖所示。

7、然後在 lv_port_esp32這個目錄下,執行以下命令,進行子模塊的下載,下載完成後,如下圖所示。

命令:git submodule update --init --recursive

8、至此,整個LVGL的工程就成功導入到ESP32裡面了,可以使用vscode打開進行開發,如下圖所示。

9、導入完成後,需要根據自己的硬體板卡,來配置LVGL的工程參數,主要是配置TFT-LCD的參數,如TFT_LCD的引腳位號,驅動方式,以及顯示參數;還有配置觸摸板的參數,如觸摸板的引腳位號,驅動晶片,等等。

10、作者採用的TFT_LCD驅動晶片是ILI9341,SPI驅動接口,RGB565的工作方式,採用的觸摸板是電阻觸摸,觸摸晶片是XPT2046,接口是SPI,具體的配置,可以參考ESP32的menuconfig裡面的內容,如下圖所示。

11、編譯工程後,燒錄到硬體板卡上,即可運行LVGL官方提供的演示demo,如下圖所示。

相關焦點

  • ESP32在Arduino環境下玩轉 LVGL,ESP32移植LVGL詳細教程
    LVGL簡介LittlevGL是一個免費的開源圖形庫,提供了創建嵌入式GUI所需的一切,具有易於使用的圖形元素、漂亮的視覺效果和低內存佔用。使用效果可以去:LittlevGL開源GUI看看,使用效果真的很是驚豔,這裡使用群友的一張圖來看看近年來各種GUI圖形庫的發展趨勢:2.
  • 啟明雲端WT-ESP32-DevKitC V4開發板直連天貓精靈IOT開放平臺
    開發環境使用樂鑫官方的ESP-IDF作為開發環境,通過對樂鑫的esp-ali-samartlving框架進行了二次開發。,天貓精靈識別到語音後會發送到生活物聯網平臺,平臺通過mqtt協議發送數據到ESP32開發板,開發板接收到數據後就可以對創建的產品進行控制了。
  • 國內linux和macos搭建esp32的開發環境
    背景esp32開發方式有許多如在Arduino軟體中Arduino框架開發方式,網上有許多教程在platformIO
  • lvgl最新版本在STM32上的移植使用
    所以大家想看哪些內容,可以在公眾號聊天界面留言,小編會參考大家的意見輸出、整理一些相關的內容。一起成長、一起進步。期待留言~下面我們一起來看一看LVGL在STM32上的移植使用。lvgl簡介 LittlevGL是一個免費的開源圖形庫,提供了創建嵌入式GUI所需的一切,具有易於使用的圖形元素、漂亮的視覺效果和低內存佔用。
  • 【玩轉ESP32】7、ESP32連接wifi
    收錄於話題 #玩轉esp32sta;wifi_init_config_t cfg=WIFI_INIT_CONFIG_DEFAULT()用於獲取wifi的默認配置;esp_wifi_init(&cfg)用於初始化wifi;esp_event_handler_instance_register 用於向上面的esp_event_loop_create_default()`註冊回調函數,
  • ESP32S2 與 ESP32 開發方式對比,帶你入門環境搭建
    /DAC 接口,支持觸摸傳感器、溫度傳感器、脈衝計數器;集成 Wi-Fi MAC/ BB/RF/PA/LNA;支持安卓、IOS 的 Smart Config(APP)/AirKiss(微信) 一鍵配網;支持二次開發,集成了 Windows、Linux 開發環境ESP8266 / ESP32 和 ESP32S2的差別一覽表
  • 用Arduino玩轉掌控板(ESP32):ESP32概述與Arduino軟體準備
    ESP32 晶片是由我國的樂鑫公司繼 ESP8266 晶片後推出的又一款集成 WiFi 功能的微控制器。它擁有比 ESP8266 更加強大的性能,可以用來開發更加複雜的應用。# 程式語言選擇ESP32 的開發方式有很多種,下面列舉幾個常用的:樂鑫官方 ESP-IDF,這是官方的首推的開發方式,能夠最大限度發揮ESP32的性能,代價就是不方便或者說是開發不是那麼高效;樂鑫官方出品 Arduino core for the ESP32,官方出品的 Arduino 編程軟體支持,上手簡單,大部分編程語法和 Arduino 兼容,藉助於
  • 【玩轉ESP32】14、esp32 mqtt client
    收錄於話題 #玩轉esp32組件支持MQTT over TCP、SSL with mbedtls、MQTT over Websocket、 MQTT over Websocket Secure;支持訂閱、發布、身份驗證、遺囑消息、心跳、以及3個消息等級。
  • 基於ESP32-S2實現的網絡/FM兩用收音機
    這是一位工程師基於硬禾學堂"暑期一起練"的ESP32-S2平臺實現的網絡收音機、FM收音機的功能,項目開源在電子森林的項目頁面(點擊左下角的「閱讀原文
  • 【arduino】arudino開發ESP32 SPIFFS文件上傳方法
    之前發過ESP8266的SPIFFS文件及上傳方法:    【arduino】arudino開發ESP8266
  • ESP32-IDF環境搭建
    比較有意思的是:前不久樂鑫發布了ESP32-S3-BOX AI語音開發套件,為用戶提供了一個以離線和在線語音助手為核心的智能設備開發平臺,其付出尤為可嘉。一、ESP32開發環境選擇ESP32的SDK有兩種: 樂鑫原廠的SDK(基於ESP-IDF)和Arduino開源平臺(Arduino開源庫)進行開發。Arduino對新手入門是非常友好的!編譯環境選擇: Windows 和 Linux 。
  • Arduino1.8.13+ESP32初體驗
    這個地方,可能得fq.後面下載很快得https://www.arduino.cc/en/donate/https://medium.com/@elisabethlevana/introduction-to-esp32
  • ESP32 入門教學,不入門,不教學
    我這次給大家介紹一個晶片,esp32,沒有收過任何費用,就是純技術分享,讓初學者少踩點坑吧,我也是最近用這個晶片,覺得爽得一X。這個晶片最大的優勢就是便宜,便宜和易於開發讓以前很多不敢想像的智能家居變成了可能,開發環境可以在windows下開發也可以在linux 環境下開發,而且對於嵌入式來說做了這部分對於網絡藍牙都有比較深刻的了解了,以後做其他系統開發也不會有太大難度。2.
  • ESP-NOW無線通信 | ESP32學習之旅-Arduino版
    在學習 Arduino 開發的過程中,無線通訊是我們學習道路上一道必過的坎,無線通訊擺脫了線材的束縛,使用更加靈活且通訊距離根據不同無線模塊可達幾十米甚至是數公裡。常見的無線通訊方式有藍牙、WiFi、LoRa、NB-IoT 等,本教程將重點介紹樂鑫科技開發的另一種無線通訊協議:ESP-NOW,通過本教程的學習,你將了解到如何將 ESP-NOW 技術應用到我們的 DIY 項目中。硬體準備開發環境我們使用 Arduino 軟體來編寫本項目的程序。
  • ESP32 設備運行 FreeRTOS IoT 作業系統
    設置 ESP32 的 FreeRTOS 開發環境需要配置 ESP32 BoardManager 所需的 ToolChain,連接設備的串口轉換軟體,以及下載 FreeRTOS 軟體包等。ESP32 設備的通信,這個是由開發板的提供商開發的,並且與 FreeRTOS 作業系統兼容適配(大家可以稍微聯想一下這意味著什麼?
  • ESP32 For Arduino雜記
    ESP32 使用MicroPython 控制Gopro Hero Black4ESP32晶片-LEDC外設(另附Arduino代碼)Dji TT無人機擴展件ESP32晶片(D2WDQ5)Thonny燒錄ESP32 mpy固件ESP32+Thonny+固件燒錄+編寫建議ESP32
  • 使用ESP32來學習Python之開發環境搭建
    Python是近來比較火的一種語言,對嵌入式人員來說,通過ESP32來學習Python是一種比較便捷、靠譜的方法。
  • 如何安裝及設定ESP32的開發環境
    如果你已決定採用ESP32並已入手,那就接下來當然就是要來安裝和設定ESP32的開發環境了,本文將帶你搞定這些動作。ESP32 Arduino IDE開發核心安裝若還沒安裝Arduino IDE,必須先至原廠網站下載並安裝,請依照以下步驟完成安裝。1.
  • 啟明雲端分享|盤點Esp32-C3與Esp8266 的區別
    ESP32-c3 準備工具ESP32-c3 :mkdir espcd ./export.sh esp32c3  ( esp32c3打不打無所謂)ESP32-c3: cp ./esp-idf/examples/get-started/hello_world/ ./ -r
  • ESP32 coredump 分析
    上次寫了一個 ESP32 入門,我想有必要再寫這篇文章,這次主要是分析 coredump 的,這就像 Android 和 Linux 系統的死機分析,有意思,也有難度。我覺得 ESP32 還有一個好處是,對於初學者真的太方便了,買個 Linux 開發板可能要幾百塊,但是買一個 ESP32 模塊的話,也就 40 塊錢,而且也是跑 Freertos 系統的,還有還有就是非常方便攜帶,調試燒錄供電都可以用一個 usb 線搞定,說真的,我沒有收錢宣傳,是真的適合沒有錢又喜歡入門嵌入式的同學們,但是這個只是起點,嵌入式後期我覺得一定是要學習Linux 的。