OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7740|回复: 13

EMWIN显示一张图片如何避免拉窗?

[复制链接]

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
发表于 2015-12-5 10:28:12 | 显示全部楼层 |阅读模式
5金钱
EMWIN用GUI_DrawBitmap函数显示一张800*600像素的图片时,载入有点慢差不多要1S,像拉窗帘一样,载入图片可以等待但怎么做可以不看到拉帘的这个过程呢?另外我用的SDRAM,跟这个有关系吗?

最佳答案

查看完整内容[请看2#楼]

算了重新开个贴吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-5 10:28:13 | 显示全部楼层
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-5 11:59:02 | 显示全部楼层
这个没办法,你只能换CPU了,MCU的解码速度就只有那样的,跟显示没关系
开往春天的手扶拖拉机
回复

使用道具 举报

3

主题

2177

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3321
金钱
3321
注册时间
2013-7-19
在线时间
195 小时
发表于 2015-12-5 13:23:03 | 显示全部楼层
把整张图片数据都放到SDRAM,然后DMA到屏幕估计会好点。
F429自带的LCD驱动器可能好点。
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-5 13:47:30 | 显示全部楼层
现在是整张图片放在了SDRAM中,也是通过回复【2楼】zuozhongkai:
---------------------------------
EMWIN手册中说到如下:

多缓冲是一种使用多个帧缓冲器的方法。其基本原理如下:在启用多个缓冲器的情况下,由显示控制
器所使用的前置缓冲器会在屏幕上产生图像,同时,一个或多个后置缓冲器则用于绘图操作。绘图操
作完成后,后置缓冲器成为可见的前置缓冲器。
如果使用两个缓冲器 (即一个前置缓冲器和一个后置缓冲器),通常称之为 “双缓冲”;如果使用两
个后置缓冲器和一个前置缓冲器,则称之为 “三缓冲”。
通常,这种方法可以避免多种无用效果:
? 可见的屏幕逐项绘图过程
? 绘图操作重叠导致的闪烁效果
? 垂直消隐期之外的写操作导致的撕裂效果
下一节详细解释了这种方法的工作原理、使用该功能所需满足的条件、 emWin 的配置方法以及 “三
缓冲”相对于 “双缓冲”的优势。此外,该方法还说明如何配置可选窗口管理器,以自动使用 “多缓
冲”功能。

其中说可避免 可见的屏幕逐项绘图过程,这样是否开启多层缓冲就可以解决?
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-5 13:47:45 | 显示全部楼层
回复【3楼】ricefat:
---------------------------------
我现在就是这样做的
回复

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2015-12-5 14:53:35 | 显示全部楼层
预加载或帧缓冲即可,SDRAM充分满足了大内存的需求。
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复

使用道具 举报

5

主题

64

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2015-11-26
在线时间
3 小时
发表于 2015-12-5 15:01:45 | 显示全部楼层
后续线路板打样或批量可以私聊我,交期稳定油墨免费。博友都有最大优惠!久一科技陈生:13414553555 QQ:309443654
我的淘宝小店:https://shop140831994.taobao.com
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-5 15:21:58 | 显示全部楼层
回复【6楼】emWin:
---------------------------------
请教大神,如何预加载?
回复

使用道具 举报

3

主题

2177

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3321
金钱
3321
注册时间
2013-7-19
在线时间
195 小时
发表于 2015-12-5 15:22:55 | 显示全部楼层
回复【4楼】tony129:
---------------------------------
帧缓冲似乎是针对动画效果的。你这个如果也是用的F429自带LCD控制器,那基本上就没有什么好办法了
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-5 16:15:32 | 显示全部楼层
回复【9楼】ricefat:
---------------------------------
可能是,我开启双缓冲,显示两张图片,前面的会拉帘,后面的一张则不会。我是用两张图片做界面背景的,如果是演示图片倒没什么了。
回复

使用道具 举报

3

主题

2177

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3321
金钱
3321
注册时间
2013-7-19
在线时间
195 小时
发表于 2015-12-5 16:40:12 | 显示全部楼层
回复【10楼】tony129:
---------------------------------
哦 原来是这样,程序上估计你要改改。第一张图片先载入缓冲再显示。
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-5 17:46:57 | 显示全部楼层
回复【11楼】ricefat:
---------------------------------
刚才又搞了下差不多算是可以了, 开双缓冲后用窗口管理自动使用多个缓冲器, 载入图片看不到拉窗了,但图片切换时有点闪,还得再看下。
回复

使用道具 举报

4

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-8-4
在线时间
10 小时
发表于 2019-6-20 15:37:46 | 显示全部楼层
tony129 发表于 2015-12-5 17:46
回复【11楼】ricefat:
---------------------------------
刚才又搞了下差不多算是可以了, 开双缓冲 ...

GUI_MULTIBUF_Config(3);//开启缓冲
WM_MULTIBUF_Enable(1);
就这两句吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 23:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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