OpenEdv-开源电子网

标题: LVGL切换界面,同时显示两个界面内容,什么原因呢 [打印本页]

作者: momentrocky    时间: 2022-2-17 10:32
标题: LVGL切换界面,同时显示两个界面内容,什么原因呢
如题,当从设置界面切回主界面时,就同时显示两个界面的内容了。
缓存设置:void mylcd_init(void)
{
    static lv_disp_buf_t disp_buf;
    static lv_color_t buf_1[MY_DISP_HOR_RES * 10*4];
    static lv_color_t buf_2[MY_DISP_HOR_RES * 10*4];
    lv_disp_buf_init(&disp_buf, buf_1, buf_2, MY_DISP_HOR_RES * 10*4);

    lv_disp_drv_t disp_drv;  
    lv_disp_drv_init(&disp_drv);
    disp_drv.buffer = &disp_buf;
    disp_drv.flush_cb = my_flush_cb;
    lv_disp_t * disp;
    disp = lv_disp_drv_register(&disp_drv);
}

内存堆设置:#define LV_MEM_SIZE    (26U * 1024U)

使用:freertos+lwip+lvgl+mqtt,界面刷屏使用spi总线,spi是分时复用(采集数据也用这个spi),切界面时采用临界段代码保护

有没有人知道这是什么原因啊?

作者: dawea    时间: 2022-3-31 18:54
界面重叠的问题应该是界面切换后没有将上个页面删除导致的, lv_obj_del,切换前应该用这个函数先kill掉之前的控件
作者: momentrocky    时间: 2022-4-1 09:23
dawea 发表于 2022-3-31 18:54
界面重叠的问题应该是界面切换后没有将上个页面删除导致的, lv_obj_del,切换前应该用这个函数先kill掉之 ...

是先用lv_obj_del删除上个界面,然后创建下个界面,然后就是重叠的
作者: q879524825    时间: 2022-6-3 14:16
要么在先前的 父对象 上新建一块全屏的 子对象,再在这个子对象 页面上 绘制
作者: q879524825    时间: 2022-6-3 14:17
q879524825 发表于 2022-6-3 14:16
要么在先前的 父对象 上新建一块全屏的 子对象,再在这个子对象 页面上 绘制

要么就删除先前的 父对象




欢迎光临 OpenEdv-开源电子网 (https://www.openedv.com/) Powered by Discuz! X3.4