这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【STM32F769】LVGL终极优化——成果篇

共3条 1/1 1 跳转至

【STM32F769】LVGL终极优化——成果篇

工程师
2025-03-08 15:19:13     打赏

【前言】

在前面我发表了好几篇关于STM32F769的GUI相关的文章
STM32F769驱动ST7789以及显示优化  

STM32F769LVGL优化显示  

STM32F769触摸GT911调试记录  

驱动板载SDRAM  

经过一天的再优化,终于完美的把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;

工程演示




关键词: STM32F769     终极     优化     LVGL     ST77    

工程师
2025-03-08 15:22:38     打赏
2楼

如果大家需要这款屏的资料可以私信我。工程太大了,上传不了。


院士
2025-03-09 16:06:07     打赏
3楼

还是私信发邮件比较方便的


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]