![](http://tuxianggu.4898.cn/thumb/uploads/2021-07-08/68ee7281b8de9ad3d0727bc2693fb8c3.jpg)
1、littleVGL 介紹
littleVGL 是近幾年開始流行的一個小型開源嵌入式GUI 庫,具有界面精美,消耗資源小,可移植度高,響應式布局等特點,全庫采用純 c 語言開發(fā),而且 littleVGL 庫的更新速度非???隨著 littleVGL 的認知度越來越大,官方資料也逐漸豐富起來。
(資料圖片僅供參考)
相比 emWin,littleVGL 的圖形效果更好,當然,對 MCU的要求要比 emWin 要高,大家根據(jù) MCU 的資源情況進行選擇。
2、littleVGL 主要特性
具有非常豐富的內(nèi)置控件,像 buttons, charts, lists, sliders, images 等
高級圖形效果:動畫,反鋸齒,透明度,平滑滾動
支持多種輸入設備,像 touchpad, mouse, keyboard, encoder 等
支持多語言的 UTF-8 編碼
支持多個和多種顯示設備,例如同步顯示在多個彩色屏或單色屏上
完全自定制的圖形元素
硬件獨立于任何微控制器或顯示器
可以縮小到最小內(nèi)存 (64 kB Flash, 16 kB RAM)
支持操作系統(tǒng)、外部儲存和 GPU(非必須)
僅僅單個幀緩沖設備就可以呈現(xiàn)高級視覺特效
使用 C 編寫以獲得最大兼容性(兼容 C++)
支持 PC 模擬器
為加速 GUI 設計,提供教程,案例和主題,支持響應式布局
提供了在線和離線文檔
基于自由和開源的 MIT 協(xié)議
littleVGL 的要求
16、32 或 64 位的單片機(微控制器)或處理器
微處理器的主頻最好高于 16MHZ
Flash/ROM:如果只用 littleVGL 核心組件的話,則至少需要 64kB 的容量,如果想完整使用的話,最好保證 180kB 以上的容量
RAM:SRAM: 大約 8 到 16 kB,這取決于你所用的組件功能和 objects 控件對象類型;棧: 至少為 2Kb,一般推薦值為 4kB;動態(tài)數(shù)據(jù)(堆): 至少 4kB,如果你用到了多個或多種控件的話,那么最好設置為 16kB 以上,這個是可以通過 lv_conf.h 配置文件中的 LV_MEM_SIZE 宏來定義的;顯示緩沖區(qū): 至少要比”水平分辨率像素”要大,一般推介值為 10 倍的”水平分辨率像素”,取個例子,假如我們屏幕的水平分辨率為480個像素,采用16位的顏色深度進行顯示,即一個像素占 2 個字節(jié),那么推介的顯示緩沖區(qū)大小為 104802=9600 個字節(jié)
C99 或更新的編譯器,如果是用 keil開發(fā)的話,一定得勾選”c99”模式,否則編譯會報錯的
基本的 c(或者 c++)語言知識,如:指針,結構體,回調(diào)函數(shù)
已經(jīng)支持的平臺
LVGL本身并不依賴特定的硬件平臺,任何滿足 LVGL 硬件配置要求的微控制器均可運行 LVGL。如下僅列舉其中一部分:
NXP:Kinetis,LPC,iMX,iMXRTSTM32F1,STM32F3,STM32F4,STM32F7,STM32L4,STM32L5,STM32H7MicrochipdsPIC33,PIC24,PIC32MX,PIC32MZLinuxframebuffer(/dev/fb)RaspberryPiEspressifESP32InfineonAurixNordicNRF52BluetoothmodulesQuectelmodems
LVGL也支持:
ArduinolibraryPlatformIOpackageZephyrlibraryESP32componentNXPMCUXpressocomponentNuttXlibraryRT-ThreadRTOS
官方效果圖
3、littleVGL 移植到 STM32F103
移植教程正點原子有做過,全套資源如下
教程寫的很好,大家可以參照移植,玩起來!
審核編輯:湯梓紅標簽: