一、初步移植界面驱动
这篇博客写的也不错,讲了整个的移植初步过程。如何做驱动,修改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中的驱动按键。
三、菜单变换
参考这个博客修改界面驱动,进行菜单变换。