單片機(jī)低代碼交互UI制作 - LVGL+Squareline+Arduino平臺 學(xué)習(xí)記錄(2)

LVGL庫安裝

既然使用的是LVGL顯示,那它自身這個庫是必須得有的,嗯,這是句廢話。
LVGL需要 32kB RAM、128 kB ROM,但不是說這些就夠了,幀緩沖區(qū)需要至少 1/10 屏幕大小的RAM進(jìn)行渲染,至于是多大呢,以320*240分辨率為例,需要320*240/10*4=30720,也就是30K左右。
存儲像素點數(shù)據(jù)的數(shù)據(jù)類型為lv_color_t,lv_color_t結(jié)構(gòu)體的大小為4字節(jié),包含紅、綠、藍(lán)和透明通道,每個都是uint8_t類型,也就是一個字節(jié),值為0~255,所以要*4。
也就是說啥還沒干,60多k的RAM已經(jīng)沒了。
注意,這是基本條件!
通常要比這多不少,所以LVGL放到單片機(jī)這個層面來說的話還是很吃配置的,什么328p、什么f103趕緊洗洗睡吧,用U8G2搞單色屏不好嗎?
相比較而言,樂鑫家的芯片性能強(qiáng)悍價格便宜,即使不用WIFI把它只當(dāng)個單片機(jī)用也是十分優(yōu)秀的存在,周邊電路少,功耗低,相近價位的沒一個能打的。
再加上合宙刨了老底,雖然板子設(shè)計的有時讓人很難受,當(dāng)然也有芯片本身的原因,但價格是真香啊,這點困難有什么是便宜克服不了的,仿版的328mini都比它貴。
328在ESP32面前算個什么東西,不就多了車規(guī)級這幾個字嘛,記得最初接觸Arduino,那會IDE還是0點幾版本的時候,價格也沒比現(xiàn)在高多少,小10年了價格都沒干下來,沒有Arduino,328又是誰知道的什么玩意,只能說AT牛批。。。
和TFT_eSPI庫一樣,LVGL這個庫也是可以直接在Arduino IDE中直接安裝的,搜索LVGL即可。

LVGL官網(wǎng):https://lvgl.io
LVGL庫下載:https://github.com/lvgl/lvgl/releases
LVGL官方手冊:https://docs.lvgl.io/master/intro/index.html
這個庫更新挺頻繁的,我升到了8.3.7,圖片還是8.3.6的,對齊Squareline 1.3.0就行,畢竟最終不是想去碼代碼,還是和圖形化軟件對齊最好,不過通常小版本都是通用的,不是大更新基本無傷大雅。

LVGL需要改動的配置文件叫l(wèi)v_conf.h
配置需要以下幾步:
1、首先進(jìn)入Arduino IDE的庫文件夾,過程和上篇TFT-eSPI的一樣
2、找到LVGL的庫文件夾,名是小寫的lvgl

3、進(jìn)入,找到名為lv_conf_template.h的文件

4、復(fù)制一份,返回上一級文件夾粘貼,是的不是在lvgl這個文件夾內(nèi),并改名為lv_conf.h。

是不是也看到上一篇安裝的TFT_eSPI這個庫了,這個操作確實有點不常見。
下一步開始修改,lv_conf.h里面東西很多,我做了份翻譯注釋的版本在最后面,看不懂的可以參考下。
修改步驟:
1、15行改為1,這個是開啟lvgl,不開不能用

2、按你的屏幕修改顏色設(shè)置,通常是不用改的,我的是16位色,RGB565格式。

3、通常改這幾個就夠了,需要其它功能的自己翻,需要開啟些性能顯示的可以搞這幾個。

操作完了嗎?
這一步如果使用Squareline的話并不是必要的,因為Squareline會輸出這個文件,到時候拷貝到lvgl文件夾同級的這個地方就行,這里寫也只是加深下注意。
到這一步LVGL的相關(guān)準(zhǔn)備工作就結(jié)束了,測試不了,官方的例程只支持到7版本,編譯會報錯,現(xiàn)在最新的都8.3.8了,以后夠嗆有例程了。
由于屏幕這東西,分辨率太多,適配起來麻煩,懶得搞了有機(jī)會再說,后面直接上Squareline做實例來演示/測試吧,這篇其實只要庫下載安裝好了,其它基本都是廢話。
最后,放一下lv_conf.h的翻譯。