移植
使用預設模板工程
新建一個RT-Thread專案,BSP版本為1.1.1
開啟RT-Thread Settings
,點選右側箭頭按鈕進入詳細
頁,在硬體
欄開啟以下幾個配置選項(LCD、觸控式螢幕、demo)
此時,開啟board資料夾,發現下面會有一個lvgl的目錄,package目錄下會有LVGL和lv-music兩個目錄,如果沒有請檢查上一步有沒有漏掉的步驟
編譯、下載程式進行發現開發板已經執行lv-music-demo程式
介面定製
接下來安裝SquareLine Studio,定製自己的lvgl介面,我這裡下載的是SquareLine_Studio_1.3.3_Setup.exe,一路預設安裝就可以了
安裝完需要登入賬號才能使用,沒有賬戶的請註冊一下
選擇Create
下的NuMaker-HMI-M467
專案,然後CREATE
這個工程自帶Sreen,先隨意拖幾個控制元件到Screen1上面
匯出ui檔案到指定資料夾lvgl-demo,生成原始碼檔案:Export
-> Export UI Files
生成的原始碼檔案如下
複製上面的資料夾到lvgl工程的目錄packages\lv_music_demo-v0.3.4
下面
把lv_demo_music函式改一下改成下面
/**
* @file lv_demo_music.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_demo_rtt_music.h"
#include "lvgl-demo/ui.h"
#if LV_USE_DEMO_RTT_MUSIC
void lv_demo_music(void)
{
ui_init();
}
#endif /*LV_USE_DEMO_RTT_MUSIC*/
先清理一下工程,然後再重新構建,沒有問題的話lvgl-demo的資料夾會被加到工程目錄中去
按Ctrl + F5
啟動除錯,編譯下載程式後,自定義的介面已經可以在開發板上面顯示
原始碼分析
用偵錯程式抓一下lvgl的啟動過程,基本分為以下幾個步驟
① INIT_ENV_EXPORT :lvgl執行緒介面作為初始化環境被系統呼叫
② lvgl_thread_init:lvgl執行緒初始化
③ lvgl_thread_entry:啟動GUI執行緒,這裡會設定一些跟螢幕相關的引數(解析度、彩色位數等)
lv_init();
lv_port_disp_init();
lv_port_indev_init();
lv_user_gui_init();
④ lv_user_gui_init:自定義使用者程式碼,最終會呼叫到ui_init