请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 6726|回复: 27
收起左侧

[专题教程] 【专题教程第1期】基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24位色效果艳丽

  [复制链接]

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
发表于 2017-10-13 00:51:08 | 显示全部楼层 |阅读模式
说明:
1. 首先感谢ST终于推出了ARGB格式的emWin库,可谓千呼万唤始出来,使用STM32的硬件RGB888接口刷新图片慢的问题终于得到解决。
2. 这个问题由来已久,是之前为我们的STM32-V6板子制作emWin模板时发现的。V6板子的硬件配置是STM32F429BIT6 + 32位带宽的SDRAM + 硬件RGB888接口。实际测试中发现,将F429配置为16位色的RGB565,刷新800*480分辨率的图片可以做到15ms左右一帧,而测试24位色的RGB888或者32位色的ARGB8888,竟然需要200多ms。后来经过多次测试,才找到根本原因,因为大部分时间都损耗在ARGB和ABGR格式转换上了。使用ARGB格式库后,刷800*480大小的图片可以做到20ms一帧。
3. 近期,ST新发布的STemWin 5.40版本中加入了ARGB格式的库,这个问题得到了解决,本次专题就是为大家讲解如何使用这个库,替换时有很多需要注意的地方。
4. 新版的STemWin5.40头文件使用IAR7.5编译会有多处警告,不用管。另外配套的两个例子是由之前的emWin提高篇例子修改而来,测试注意事项看此贴:链接
================================
专题教程下载:
专题教程第1期:基于STM32的硬件RGB888接口实现emWin的快速刷新方案.pdf (1.52 MB, 下载次数: 2566)
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

111

主题

843

帖子

1065

积分

至尊会员

积分
1065
QQ
发表于 2017-10-13 09:09:24 | 显示全部楼层
这个赞, 以后低端显示可以用普通单片机实现了
回复

使用道具 举报

0

主题

28

帖子

28

积分

新手上路

one is enough

积分
28
发表于 2017-10-13 09:16:22 | 显示全部楼层
好东西~mark~~1024~
one is enough
回复

使用道具 举报

5

主题

473

帖子

483

积分

版主

Rank: 7Rank: 7Rank: 7

积分
483
发表于 2017-10-13 20:00:08 | 显示全部楼层
性能是不是下降很多 尤其是屏不能直接支持argb的话
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2017-10-14 00:17:54 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:性能是不是下降很多 尤其是屏不能直接支持argb的话 (2017-10-13 20:00) 
颜色格式不统一的话,绘制图片时,差距特别明显。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

33

主题

1465

帖子

1531

积分

至尊会员

积分
1531
发表于 2017-10-14 00:20:56 | 显示全部楼层
[s:151] [s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

0

主题

1

帖子

1

积分

新手上路

积分
1
发表于 2017-10-14 15:47:08 | 显示全部楼层
[s:141]
回复

使用道具 举报

15

主题

164

帖子

194

积分

初级会员

积分
194
QQ
发表于 2017-10-14 17:44:06 | 显示全部楼层
[s:151]
回复

使用道具 举报

47

主题

661

帖子

755

积分

金牌会员

积分
755
发表于 2017-10-16 23:35:18 | 显示全部楼层
大赞。
回复

使用道具 举报

0

主题

10

帖子

0

积分

新手上路

积分
0
发表于 2017-10-17 10:05:02 | 显示全部楼层
好东西下载好好地学习学习,谢谢!
回复

使用道具 举报

29

主题

192

帖子

250

积分

高级会员

积分
250
发表于 2017-10-26 10:25:55 | 显示全部楼层
支持一下[s:151] [s:151]
回复

使用道具 举报

3

主题

66

帖子

72

积分

初级会员

积分
72
发表于 2017-12-4 10:10:36 | 显示全部楼层
为啥你跑到8000多万分,我只有4000万不到
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2017-12-4 10:55:31 | 显示全部楼层

回 lifeng5478 的帖子

lifeng5478:为啥你跑到8000多万分,我只有4000万不到 (2017-12-04 10:10) 
降低LTDC时钟,一般取值15MHz即可。高了处理不过来,反倒刷新慢。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

0

主题

3

帖子

22

积分

新手上路

积分
22
发表于 2018-1-2 15:50:54 | 显示全部楼层
非常感谢您的教程和分享,直接移植您提供的例程测试了一下,发现ARGB 32位色格式刷图确实可以达到20ms的级别,但是RGB 24位色的话却需要100ms,不知道你们有碰到过这种情况吗
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2018-1-2 16:44:15 | 显示全部楼层
zhiweigengqi 发表于 2018-1-2 15:50
非常感谢您的教程和分享,直接移植您提供的例程测试了一下,发现ARGB 32位色格式刷图确实可以达到20ms的级 ...

务必使用32位色,24位色底层没法做24bpp加速,只有8,16和32才可以。所以搞32位色即可。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

0

主题

3

帖子

22

积分

新手上路

积分
22
发表于 2018-1-2 18:04:34 | 显示全部楼层
eric2013 发表于 2018-1-2 16:44
务必使用32位色,24位色底层没法做24bpp加速,只有8,16和32才可以。所以搞32位色即可。

好的,明白了,谢谢解答
回复

使用道具 举报

2

主题

132

帖子

136

积分

初级会员

积分
136
发表于 2018-1-6 12:01:21 | 显示全部楼层
我这两天在官方stm32f469i-dicovery做的测试如下   32bitSDRAM  ARGB显示800*480  565的位图需要8ms  如果采用内部sram同样也是8ms   如果不使用ARGB库的话  使用SDRAM绘制需要349ms  采用内部sram需要243ms  差别还是挺大的   所以建议使用ARGB库   另外最新的stemwin库好像直接兼容这两种方式  即RGB和BRG  测试发现使用ARGB库显示这两种格式的位图都可以正常显示   只是RGB格式的位图显示更快

另外还发现一个问题  就是使能了存储设备和多缓存   显示图片还是能看到过程  特别显示BRG格式问题的时候  特别明显  显示RGB格式位图的时候也能看到屏幕明显的闪烁和撕裂感  目前没有找到原因所在   硬汉大哥能帮忙分析一下吗  谢谢
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2018-1-6 12:13:33 | 显示全部楼层
hanzixiangel 发表于 2018-1-6 12:01
我这两天在官方stm32f469i-dicovery做的测试如下   32bitSDRAM  ARGB显示800*480  565的位图需要8ms  如果 ...

1. 不兼容,位图格式与使用RGB或者BGR库无关。
2. 不出意外的话,是官方的底层优化有问题,之前F429的就是bug超多。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

2

主题

132

帖子

136

积分

初级会员

积分
136
发表于 2018-1-7 10:54:34 | 显示全部楼层
eric2013 发表于 2018-1-6 12:13
1. 不兼容,位图格式与使用RGB或者BGR库无关。
2. 不出意外的话,是官方的底层优化有问题,之前F429的就 ...

嗯嗯  今天加载到存储设备测试  显示BGR格式的位图为11ms   但是还能明显的看到撕裂感    屏幕一闪而过  但是加载速度从原来的349ms提升到11ms    测试RGB格式的位图却反而慢了   不使用存储设备显示需要8ms  使用存储设备居然需要13ms   出乎意料之外
回复

使用道具 举报

10

主题

28

帖子

48

积分

新手上路

积分
48
发表于 2018-1-7 14:36:22 | 显示全部楼层
。。。不知道哪里配置问题,直接用了你的工程,emwin5.32的库运行正常,一用5.40运行GUI_Init()直接出现硬件错误。
回复

使用道具 举报

10

主题

28

帖子

48

积分

新手上路

积分
48
发表于 2018-1-7 15:20:42 | 显示全部楼层
断点调试发现最后在运行void GUI_X_Config(void)下的->GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);就硬件错误了用的是sdram,啥也不改,5.32,5.28都可以运行,很正常,用5.40的都不行。带os的,优化不优化什么的都试了,那些库最后都会在这个地方出现硬件错误。请教下,这个是什么问题
回复

使用道具 举报

2

主题

132

帖子

136

积分

初级会员

积分
136
发表于 2018-1-7 15:44:39 | 显示全部楼层
eric2013 发表于 2018-1-6 12:13
1. 不兼容,位图格式与使用RGB或者BGR库无关。
2. 不出意外的话,是官方的底层优化有问题,之前F429的就 ...

经过测试    st官方的stemwin移植的果然有bug   打开存储设备依然会有撕裂感
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2018-1-8 00:14:18 | 显示全部楼层
ywg121020 发表于 2018-1-7 15:20
断点调试发现最后在运行void GUI_X_Config(void)下的->GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);就硬件错 ...

你用的5.32,5.28都是ABGR格式的库,使用5.40务必也使用这个格式的。

直接替换lib库文件和所有inc头文件即可使用。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2018-1-8 00:15:37 | 显示全部楼层
hanzixiangel 发表于 2018-1-7 15:44
经过测试    st官方的stemwin移植的果然有bug   打开存储设备依然会有撕裂感

其实不光他们搞的底层有bug,他们整理编译的STemWin相比MDK带的emWin也多几处bug。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

2

主题

132

帖子

136

积分

初级会员

积分
136
发表于 2018-1-8 11:09:20 | 显示全部楼层
eric2013 发表于 2018-1-8 00:15
其实不光他们搞的底层有bug,他们整理编译的STemWin相比MDK带的emWin也多几处bug。

硬汉大哥  都什么bug  影响使用不?
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2018-1-8 11:16:33 | 显示全部楼层
hanzixiangel 发表于 2018-1-8 11:09
硬汉大哥  都什么bug  影响使用不?

是一些功能性的bug,没事,不影响。之前总结的几个:

http://forum.armfly.com/forum.ph ... 7&highlight=bug
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

47

主题

661

帖子

755

积分

金牌会员

积分
755
发表于 2019-4-2 14:10:21 | 显示全部楼层
V7核心板上的FPC40脚  也是 硬件RGB888接口   ??  4.3寸屏也是888?
回复

使用道具 举报

5911

主题

3万

帖子

4万

积分

管理员

健健康康的活着

Rank: 9Rank: 9Rank: 9

积分
47399
QQ
 楼主| 发表于 2019-4-2 14:37:06 | 显示全部楼层
roguebear 发表于 2019-4-2 14:10
V7核心板上的FPC40脚  也是 硬件RGB888接口   ??  4.3寸屏也是888?

都是。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-7-22 18:07 , Processed in 0.263383 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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