lvgl官方的教程是英文的,這個是我在做專案時根據lvgl官方文件做出來的lvgl中文文件(持續更新維護),不僅僅只是生硬照搬lvgl官方文件的翻譯,同時總結了我們在實際開發中遇到的各種細節,讓這個文件更加適合我們在實際開發中的需求。
@
LVGL官方簡介
The first version of LVGL was published on GitHub in 2016. As it usually happens it was started as a one-man project. Since then almost 100 contributors joined the development and LVGL became one of the most popular embedded graphics libraries. [1]
Nowadays LVGL is downloaded every 5 minutes and it's among the most popular C libraries on GitHub. Besides attracting thousands of users LVGL became engaging for huge companies too who offer LVGL in their ecosystem. In 2020 we established LVGL LLC to provide a solid background for the library and to develop new ways to aid UI development.[1:1]
LVGL 的第一個版本於 2016 年在 GitHub 上釋出。 像一般的開源專案的那樣,它是作為一個人的專案開始的。 從那時起,陸續有近 100 名貢獻者參與了專案開發,使得 LVGL 逐漸成為最受歡迎的嵌入式圖形庫之一。
現在 LVGL 每 5 分鐘就有一次下載量,她是 GitHub 上最受歡迎的 C 庫之一。 除了吸引成千上萬的使用者之外,LVGL 還吸引了在其生態系統中的一些大公司。 2020 年,我們成立了 LVGL LLC,為庫提供堅實的背景,並開發新的方法來幫助 UI 開發。
LVGL之前叫 LittlevGL,後來作者將其更名為 LVGL。
LVGL的專案作者是來自匈牙利首都布達佩斯的 Gábor Kiss-Vámosi 。Kiss 在2009年開始寫 LVGL(LittlevGL),2016年將其重寫併發布在 GitHub 上。
基於lvgl V7.11.0 編寫的103桌面
基於 lvgl V7.11.0 該專案實現了以下功能:
- 模仿 windows10 風格的檔案瀏覽器
- 時鐘
- 二維碼生成器
- 系統說明
- 溫溼度採集
- 2048小遊戲
- 音樂播放器
- 貪吃蛇小遊戲
- 計算器
- 暫存器位檢視工具
- 系統主題切換
- 板載硬體測試
原始碼獲取:http://download.100ask.org/boards/St/100ask_stm32f103/index.html
基於lvgl V7.11.0 編寫的平板桌面
該GUI基於 800x600的LCD螢幕上開發,去年就已經完成,目前已經將其lvgl庫更新至lvgl最新的穩定版本 V7.11.0,點選這裡檢視視訊演示效果。
基於 lvgl V7.11.0 該專案實現了以下功能:
- 相簿
- 二維碼生成器
- 檔案瀏覽器
- 整合lvgl官方demo:圖片編輯器
- 整合lvgl官方demo:音樂播放器
- 整合lvgl官方demo:印表機
- 整合lvgl官方demo:壓力測試
- 2048小遊戲
- TODO...
原始碼獲取:http://download.100ask.org/boards/Nxp/100ask_imx6ull_pro/index.html
什麼是LVGL
lvgl(輕巧而多功能的圖形庫)是一個免費的開放原始碼圖形庫,它提供建立具有易於使用的圖形元素,精美的視覺效果和低記憶體佔用的嵌入式GUI所需的一切。
LVGL的主要特性
LVGL的主要特性 | |
---|---|
1 | 功能強大的構建塊,例如按鈕,圖表,列表,滑塊,影像等。 |
2 | 帶有動畫,抗鋸齒,不透明,平滑滾動的高階圖形 |
3 | 各種輸入裝置,例如觸控板,滑鼠,鍵盤,編碼器等 |
4 | 支援UTF-8編碼的多語言 |
5 | 多顯示器支援,如TFT,單色顯示器 |
6 | 完全可定製的圖形元素 |
7 | 獨立於任何微控制器或顯示器使用的硬體 |
8 | 可擴充套件以使用很少的記憶體(64 kB快閃記憶體,16 kB RAM)進行操作 |
9 | 作業系統,支援外部儲存器和GPU,但不是必需的 |
10 | 單幀緩衝區操作,即使具有高階圖形效果 |
11 | 用C語言編寫,以實現最大的相容性(與C ++相容) |
12 | 模擬器可在沒有嵌入式硬體的PC上進行嵌入式GUI設計 |
13 | 可移植到MicroPython |
14 | 可快速上手的教程、示例、主題 |
15 | 豐富的文件教程 |
16 | 在MIT許可下免費和開源 |
硬體要求
基本上,每個現代控制器(肯定必須要能夠驅動顯示器)都適合執行LVGL。LVGL的最低執行要求很低:
lvgl的硬體要求 | |
---|---|
處理器 | 16、32或64位微控制器或處理器 |
時脈頻率 | 最低 16 MHz 時脈頻率 |
Flash/ROM | 對於非常重要的元件要求 >64 kB(建議 > 180 kB) |
RAM | 1.靜態 RAM 使用量:~2 kB,取決於所使用的功能和物件型別- 堆疊: > 2kB(建議 > 8 kB) 2.動態資料(堆):> 2 KB(如果使用多個物件,則建議 > 16 kB)。由 lv_conf.h 中的 LV_MEM_SIZE 巨集進行設定。 3.顯示緩衝區:> “水平解析度”畫素(建議 > 10× “水平解析度” ) 4.MCU 或外部顯示控制器中的一幀緩衝區 |
編譯器 | C99或更高版本的編譯器 |
技術棧 | 具備基本的C(或C ++)知識:指標,結構,回撥… |
LVGL中文手冊
lvgl官方的教程是英文的,這個是我在做專案時順便做出來的中文教程站點(持續更新維護),不僅僅只是照搬lvgl官方文件的翻譯,同時總結了我們在實際開發中遇到的各種細節,讓這個文件更加適合我們在實際開發中的需求。
- lvgl官方英文原版教程: https://docs.lvgl.io
- lvgl中文教程(中文手冊):http://lvgl.100ask.net