硬汉嵌入式论坛

 找回密码
 立即注册
查看: 385|回复: 6
收起左侧

[emWin] emwin 自定义控件刷新

[复制链接]

10

主题

22

回帖

52

积分

初级会员

积分
52
发表于 2023-4-23 15:54:44 | 显示全部楼层 |阅读模式
uint8_t action_update_list(void){    update_t *list = update_list;    //update_t *tmp;    //GUI_HMEM hMem;    WM_MESSAGE msg;    msg.MsgId = WM_PAINT;    while (list != NULL)    {        WM_InvalidateWindow(list->hwin);        //msg.hWin = list->hwin;        //WM_SendMessage(list->hwin,&msg);        GUI_Exec();        //WM_SendMessageNoPara(list->hwin,);        list = list->next;//      hMem = GUI_ALLOC_p2h(tmp);//      GUI_ALLOC_Free(hMem);    }        return 0;}   调用WM_SendMessage时,调试可以看见进入了WM_PAINT,但是页面显示无刷新,而调用WM_InvalidateWindow,会刷新,但是显示闪烁,闪烁为黑底加指定的控件 和 全页面 两个交替显示        action_update_list();        //vTaskDelay(10);        //GUI_Exec();        GUI_Delay(300);
延时函数越大,闪烁的越慢


回复

使用道具 举报

10

主题

22

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2023-4-23 17:08:49 | 显示全部楼层
关闭了多缓冲是不会出现 闪烁为黑底加指定的控件 和 全页面 两个交替显示 这个现象,但是控件刷新的时候会闪烁,难道是多缓冲刷新的问题?
回复

使用道具 举报

10

主题

22

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2023-4-23 17:10:07 | 显示全部楼层
关闭多缓冲后,不会出现 闪烁为黑底加指定的控件 和 全页面 两个交替显示  这个现象,但是控件刷新闪烁
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106912
QQ
发表于 2023-4-24 09:07:46 | 显示全部楼层
ccc_clive 发表于 2023-4-23 17:08
关闭了多缓冲是不会出现 闪烁为黑底加指定的控件 和 全页面 两个交替显示 这个现象,但是控件刷新的时候会 ...

方便的话,代码改成截图也行,这样看着有点吃力。
回复

使用道具 举报

10

主题

22

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2023-4-24 09:18:06 | 显示全部楼层
测试出个好方法,把多缓冲和内存设备都配置上,但多缓冲只在页面切换的时候使用
GUI_MULTIBUF_Begin();
hf_win_init("ui/page02.json");
GUI_Exec();
GUI_MULTIBUF_End();
在需要实时刷新的控件上,创建的时候加上内存设备标识符。这样页面切换和控件刷新效果暂时还能接受
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106912
QQ
发表于 2023-4-25 09:55:07 | 显示全部楼层
你的多缓冲应该没有正常配置。
回复

使用道具 举报

10

主题

22

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2023-4-27 10:12:40 | 显示全部楼层
最后测试发现问题在copybuffer函数中的DMA内存复制的时候有问题,直接用memcpy反而没问题,应该就是DMA没配置好
屏幕截图 2023-04-27 101039.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 15:45 , Processed in 0.285626 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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