硬汉嵌入式论坛

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

[emWin] 为什么由uCGUI切换到STemWin后速度变慢了?

[复制链接]

20

主题

92

回帖

152

积分

初级会员

积分
152
发表于 2019-1-9 16:54:50 | 显示全部楼层 |阅读模式
本帖最后由 tovax 于 2019-1-9 18:09 编辑

若干个FRAMEWIN上都有几十个控件,通过按键选择不同的FRAMEWIN,之前用的uCGUI3.98感觉是“不快”,现在切换到STemWin532的感觉是“好慢”;
请问各位一般是什么原因会影响到显示刷新速度呢?
备注:
1. LTDC时钟是25MHz(感觉跟16MHz的效果差不多),像素格式ARGB8888,上层应用部分基本没有改动,包括文件系统中的SIF字体也没有任何修改
2. 底层的移植来源于“V6-901_STemWin提高篇实验_ATM机(FreeRTOS)”(十分感谢安富莱的奉献),见附件
3. 显示屏是800*600,RGB565,不过还是按ARGB8888输出的(这里应该不用格式转换吧,直接输出就好了,显示屏没有接的低位部分忽略了)

Config.rar

18.01 KB, 下载次数: 7

回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2019-1-9 17:57:32 | 显示全部楼层
安富莱例程用的标准库,附件修改为HAL库了,并且屏蔽了LTDC初始化相关的处理,我在系统上电的时候已经初始化过了;
外部SDRAM是32位的,emWin手册中有说“R A M 需 要 是 8、16 和 32 位可 访 问 的”,不知道这个会不会影响。
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2019-1-9 18:02:31 | 显示全部楼层
基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24位色效果艳丽
http://www.armbbs.cn/forum.php?mod=viewthread&tid=44512

请问跟这个专题的介绍是一回事吗,感觉我的刷新速度比200毫秒还要慢。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-1-10 01:48:51 | 显示全部楼层
把创建的界面发我,或者私信我均可,我测试下。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-1-11 00:38:37 | 显示全部楼层
帮你测试了,添加了你提供的文件后,错误稍多,方便的话,进行一个主界面效果的文件就行,整到一个C文件里面,我能编译通过就行。 QQ截图20190111003807.jpg
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2019-1-11 18:25:00 | 显示全部楼层
eric2013 发表于 2019-1-11 00:38
帮你测试了,添加了你提供的文件后,错误稍多,方便的话,进行一个主界面效果的文件就行,整到一个C文件里 ...

确实太乱了,不好意思,宏定义弄的有点儿多了,下午试着在guibuilder里修改一版给你,结果找到了点儿眉目;
以下是操作步骤:
1. 在guibuilder里新建主界面,由于不知道怎么显示中文,就全用拼音代替了,结果刷新速度很完美;
2. 我猜想是不是中文字库的加载慢了,于是给每个控件都设置了默认中文字体,也就是跟我原来的界面差不多了,本以为会刷新很慢,没想到也是完美刷新;
3. 既然中文字库没有影响,剩下的可疑因素就不多了,有可能是那些复杂的宏定义(宏定义按说是预编译的时候已经计算展开的吧,之前在ucgui上还特意注意过这个因素,结果好像并没有影响速度),要么是控件初始化过程中的矢量运算影响的;

大概是这么个情况,思路也清晰了,先不麻烦你了,我这两天排查出问题后来回复给大家。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-1-12 00:54:54 | 显示全部楼层
tovax 发表于 2019-1-11 18:25
确实太乱了,不好意思,宏定义弄的有点儿多了,下午试着在guibuilder里修改一版给你,结果找到了点儿眉目 ...

好的,还有其它问题的话,我们再交流。
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2019-1-12 15:36:06 | 显示全部楼层
eric2013 发表于 2019-1-12 00:54
好的,还有其它问题的话,我们再交流。

1. 主界面刷新超慢的原因是MEMDEV,在创建之前执行了“WM_SetCreateFlags(WM_CF_MEMDEV);”,把这一句屏蔽掉就好了;
2. 主界面切换到F5界面,F5界面显示不完整,这个现象在前几个月也发过帖子:http://www.armbbs.cn/forum.php?m ... mp;extra=#pid143213
    当时是加了一点延时,不过看上去太揪心了,今天重新测试了一下,原因更偏向于“控件太多,初始化太繁琐”,控件大概有176个,每个都在设置背景颜色、字体颜色等,把这些无关紧要的初始化语句屏蔽之后,创建速度改善很明显,并且也不用延时了;
3. 还请教一下,由于checkbox的Label是在单选框的右边的,而我的是左边的,就用checkbox和text组合实现了,这样就多用了30多个text控件,能把这部分优化一下就更好了,请问一下checkbox的label可以设定在左边吗?我看api好像没有这个设置。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 14:50 , Processed in 0.248557 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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