硬汉嵌入式论坛

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

[emWin] 【求助】emWin 内存设备 刷新控件 屏幕抖动

[复制链接]
回帖奖励 4 个金币 回复本帖可获得 1 个金币奖励! 每人限 1 次

3

主题

6

回帖

15

积分

新手上路

积分
15
发表于 2020-9-21 22:25:39 | 显示全部楼层 |阅读模式
大家好,最近在驱动一个800*600分辨率的LCD屏,使用的主控芯片是STM32F429IG,LTDC RGB565。
遇到的问题是,当依次点击两个离得比较远的按钮时,屏幕刷新出现了一个明显的抖动。
如图,点击1处,然后点击2处,点击2处时,屏幕出现了抖动。
先点击按钮2,再点击2处左边紧挨的按钮就没有出现抖动的现象。
20200921221244148.png

程序中开启了内存设备  WM_SetCreateFlags(WM_CF_MEMDEV);
我猜测是内存设备刷新时进行了整个屏幕的刷新,由于屏幕像素比较高而刷新速度有限,所以出现了这样的现象。
请教各位我分析的方向对不对,有没有什么方法可以消除这个抖动?
先行感谢


回复

使用道具 举报

21

主题

481

回帖

544

积分

金牌会员

积分
544
发表于 2020-9-22 00:18:46 | 显示全部楼层
贴一下你的回调函数,看看你是怎么处理的?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-9-22 08:59:17 | 显示全部楼层

回帖奖励 +1 个金币

方便的话,先上程序。
回复

使用道具 举报

7

主题

85

回帖

111

积分

初级会员

积分
111
发表于 2020-9-23 09:32:45 | 显示全部楼层
还是要看你的写法,猜不出
回复

使用道具 举报

3

主题

6

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2020-9-23 10:16:12 | 显示全部楼层
尝试了一下,将屏幕上下两部分控件放在两个不同的windows里,抖动消除。
原先是只使用了一个800x600的window包含所有按钮控件。似乎就是window设置的太大,按下按键,控件刷新,引起的抖动。
感谢Eric和h_007的回帖。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-9-23 12:25:41 | 显示全部楼层
Bird 发表于 2020-9-23 10:16
尝试了一下,将屏幕上下两部分控件放在两个不同的windows里,抖动消除。
原先是只使用了一个800x600的wind ...

谢谢告知原因。
回复

使用道具 举报

7

主题

85

回帖

111

积分

初级会员

积分
111
发表于 2020-9-23 13:58:46 | 显示全部楼层
Bird 发表于 2020-9-23 10:16
尝试了一下,将屏幕上下两部分控件放在两个不同的windows里,抖动消除。
原先是只使用了一个800x600的wind ...

这样的处理不是最优方法,分辨率800x600并不算大,不是根本原因,建议查下lcd的驱动时序,比如降低下时钟
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-17 03:50 , Processed in 0.042581 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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