移植 使用預設模板工程新建一個RT-Thread項目,BSP版本為1.1.1 打開RT-Thread Settings,點擊右側箭頭按鈕進入詳細頁,在硬體欄開啟以下幾個配置選項(LCD、觸摸屏、demo) 此時,打開board文件夾,發現下麵會有一個lvgl的目錄,package目錄下會有LVGL和 ...
移植
使用預設模板工程
新建一個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