OpenEdv-开源电子网

 找回密码
 立即注册
查看: 4530|回复: 4

LVGL切换界面,同时显示两个界面内容,什么原因呢

[复制链接]

10

主题

49

帖子

0

精华

高级会员

Rank: 4

积分
500
金钱
500
注册时间
2019-7-3
在线时间
323 小时
发表于 2022-2-17 10:32:31 | 显示全部楼层 |阅读模式
50金钱
如题,当从设置界面切回主界面时,就同时显示两个界面的内容了。
缓存设置: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),切界面时采用临界段代码保护

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

11.png
22.png
33.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-4-20
在线时间
4 小时
发表于 2022-3-31 18:54:45 | 显示全部楼层
界面重叠的问题应该是界面切换后没有将上个页面删除导致的, lv_obj_del,切换前应该用这个函数先kill掉之前的控件
回复

使用道具 举报

10

主题

49

帖子

0

精华

高级会员

Rank: 4

积分
500
金钱
500
注册时间
2019-7-3
在线时间
323 小时
 楼主| 发表于 2022-4-1 09:23:22 | 显示全部楼层
dawea 发表于 2022-3-31 18:54
界面重叠的问题应该是界面切换后没有将上个页面删除导致的, lv_obj_del,切换前应该用这个函数先kill掉之 ...

是先用lv_obj_del删除上个界面,然后创建下个界面,然后就是重叠的
回复

使用道具 举报

16

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
830
金钱
830
注册时间
2020-7-1
在线时间
110 小时
发表于 2022-6-3 14:16:44 | 显示全部楼层
要么在先前的 父对象 上新建一块全屏的 子对象,再在这个子对象 页面上 绘制
刚跨过大门,入眼是海洋
回复

使用道具 举报

16

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
830
金钱
830
注册时间
2020-7-1
在线时间
110 小时
发表于 2022-6-3 14:17:24 | 显示全部楼层
q879524825 发表于 2022-6-3 14:16
要么在先前的 父对象 上新建一块全屏的 子对象,再在这个子对象 页面上 绘制

要么就删除先前的 父对象
刚跨过大门,入眼是海洋
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 04:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表