【前言】
在前面我发表了好几篇关于STM32F769的GUI相关的文章
STM32F769驱动ST7789以及显示优化
经过一天的再优化,终于完美的把LVGL的示例跑出超级流畅的效果。现在分享如下:
【内存优化】
我驱动了板载的SDRAM,这样就可以提供大内存给Lvgl做显存,在lv_port_disp.c的lv_port_disp_init函数中,我使用方案3来开启显存配置代码如下:
static lv_disp_draw_buf_t draw_buf_dsc_3; static lv_color_t buf_3_1[MY_DISP_HOR_RES * MY_DISP_VER_RES] __attribute__((at(0XC0000000))); /*A screen sized buffer*/ static lv_color_t buf_3_2[MY_DISP_HOR_RES * MY_DISP_VER_RES] __attribute__((at(0XC0010000))); ; /*Another screen sized buffer*/ lv_disp_draw_buf_init(&draw_buf_dsc_3, buf_3_1, buf_3_2, MY_DISP_VER_RES * LV_VER_RES_MAX); /*Initialize the display buffer*/
在lv_conf.h可配置最大为LCD的高度:
// 屏幕尺寸需要配置 #define MY_DISP_HOR_RES 240 #define MY_DISP_VER_RES 320 #define LV_VER_RES_MAX 320
这样就可以做整屏双显示了。
【spi传输优化】
在我的上一篇文章中,我重新开篇了一个数组,把显示参数进行了重新,经过试验,可以直接使用显存进行传送。代码如下:
tatic void disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) { if (disp_flush_enabled) { uint32_t offset = 0;