考慮到GUI一般比較喫內存,使用403,本芯片可以配置開啓最大224KB SRAM。
和其它開源軟件類似,移植源碼,移植接口,加幾個頭文件基本上就OK了。
這個GUI最簡單的是隻要移植刷位圖就可以。
代碼可以優化不少,直接使用DMA可以快速的發送一些列連續的數據。測試SPI 50M處理480x320.
效果還行。
加入RTOS後刷屏可以加入信號量,使用中斷喚醒刷新任務,高效率實現刷屏。
配置刷多少行。如果內存夠直接開兩個顯存,效果最完美,內存不大不小,可以適當配置。
內存耗費:60*320*2*2 = 75K(顯示緩衝區) 64KB動態內存池。
由於我使用的是TFT是18位模式,所以開闢了一個大內存作爲動態內存分配池。
實際使用可以適當減小。設置行數也是一樣。
調用LVGL最基礎的調用 lv_init();
// 定義風格
static lv_style_t lv_style_list;
//LV_SYMBOL_HOME
lv_style_init(&lv_style_list);
// 聲明引用外部目標函數
extern lv_font_t myFont;
// 給style重新定向字體
lv_style_set_text_font(&lv_style_list, LV_STATE_DEFAULT, &myFont);
// 定時空間
lv_obj_t * bar1 = lv_bar_create(lv_scr_act(), NULL);
lv_obj_set_size(bar1, 200, 20);
lv_obj_align(bar1, NULL, LV_ALIGN_CENTER, 0, 0);
lv_bar_set_anim_time(bar1, 1000);
lv_bar_set_value(bar1, 50, LV_ANIM_ON);
// 創建標籤空間
label = lv_label_create(lv_scr_act(), NULL);
// 裝載新的style 給標籤。
lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_style_list);