一、初步移植界面驅動
這篇博客寫的也不錯,講了整個的移植初步過程。如何做驅動,修改LVGL中的參數。
LVGL移植到基於VSCode的platformio工程的STM32L476 Nucleo開發板(st7789顯示驅動)_BigAntHome的博客-程序員宅基地
這篇博客寫了如何將在arduino移植LVGL,看完這個我們就知道怎么初步完成移植了。
How to use LVGL library – Arduino on an ESP-32 and SPI LCD
void my_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p )
{
uint32_t w = ( area->x2 - area->x1 + 1 );
uint32_t h = ( area->y2 - area->y1 + 1 );
uint32_t wh = w*h;
tft.startWrite();
tft.setAddrWindow( area->x1, area->y1, w, h );
while (wh--) tft.pushColor(color_p++->full);
tft.endWrite();
lv_disp_flush_ready( disp );
}
void setup() {
// put your setup code here, to run once:
lv_init();
LCD_Init();//LCD初始化
lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * 10 );
/*Initialize the display*/
static lv_disp_drv_t disp_drv;
lv_disp_drv_init( &disp_drv );
/*Change the following line to your display resolution*/
disp_drv.hor_res = screenWidth;
disp_drv.ver_res = screenHeight;
disp_drv.flush_cb = my_disp_flush;
disp_drv.draw_buf = &draw_buf;
lv_disp_drv_register( &disp_drv );
lv_example_event_0();
lv_example_event_1();
}
查看這部分代碼是如何編輯display的函數的,並且調用。可以給下面的外部按鍵移植做個參考!
二、外部按鍵移植驅動
按照這個博客進行驅動改寫,我們可以將外部的實體按鍵修改為LVGL中的驅動按鍵。
三、菜單變換
參考這個博客修改界面驅動,進行菜單變換。