硬汉嵌入式论坛

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

[emWin] 请教关于带freertos系统的emwin切换界面速度快死机问题?

[复制链接]

11

主题

68

回帖

198

积分

初级会员

积分
198
发表于 2017-6-6 11:16:10 | 显示全部楼层 |阅读模式
      我用的是实体按键中断触发切换界面的,主界面上加载了几个图形和一些串口接收的信息显示,当我按键速度快的时候,主界面和菜单界面会来回切换会出现死机的现象。主界面刷出一点点然后死机了,整个mcu挂了。我的界面设计参照了eric2013的ATM_DEMO,我没有背景界面,我的主界面就是背景界面。
     请教,是否是按键中断响应快,界面来不及刷新导致,如何提高界面刷新速度?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115733
QQ
发表于 2017-6-6 11:31:25 | 显示全部楼层
可以先移植ATM的原始例子,保证测试没有问题后,再逐步修改成你自己的应用,这样查找问题也许好弄些。例子一旦复杂后,排查就麻烦了很多。
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-6 11:44:37 | 显示全部楼层
eric2013,谢谢回复,你的demo跑没问题的,主要是我的主界面东西较多,bmp格式的图标就有6个,来回切换快了,就会卡死
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-6 11:46:12 | 显示全部楼层
我还试过,光刷一个小色块,也是没问题的
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-6 11:48:00 | 显示全部楼层
能否有好的方法提高界面刷新速度,gui_clear()对界面刷新有影响?我也开启了WM_SetCreateFlags(WM_CF_MEMDEV);
回复

使用道具 举报

42

主题

1019

回帖

1150

积分

至尊会员

积分
1150
发表于 2017-6-6 13:15:58 | 显示全部楼层
看楼主描述,死机应该是正常的,典型的并行处理冲突:一个未完成的处理被一个新处理所冲击。建议如下:
1. 当一个切换响应未完成时,不要响应新的按钮操作,丢弃所有切换期间的按钮消息;
2. 显示不要用bmp图片,将bmp转换为流位图,能显著提高显示速度。所有用bmp的地方,都尽量转换为流位图,我工程中的背景、按钮等都用流位图,比bmp响应快得多。

另,按钮等虽然有流位图接口,但经过测试是不能使用的。我都是自己写回调函数,在回调中画流位的,实测效果非常好。
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-6 16:25:09 | 显示全部楼层

回 ghslfgkkl88 的帖子

ghslfgkkl88:看楼主描述,死机应该是正常的,典型的并行处理冲突:一个未完成的处理被一个新处理所冲击。建议如下:
1. 当一个切换响应未完成时,不要响应新的按钮操作,丢弃所有切换期间的按钮消息;
2. 显示不要用bmp图片,将bmp转换为流位图,能显著提高显示速度。所有用bmp的地方,都尽量 .. (2017-06-06 13:15) 
谢谢,我试试
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-6 16:42:17 | 显示全部楼层

回 ghslfgkkl88 的帖子

ghslfgkkl88:看楼主描述,死机应该是正常的,典型的并行处理冲突:一个未完成的处理被一个新处理所冲击。建议如下:
1. 当一个切换响应未完成时,不要响应新的按钮操作,丢弃所有切换期间的按钮消息;
2. 显示不要用bmp图片,将bmp转换为流位图,能显著提高显示速度。所有用bmp的地方,都尽量 .. (2017-06-06 13:15) 
能否+你qq请教一些问题,我的qq530307510
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115733
QQ
发表于 2017-6-7 01:25:04 | 显示全部楼层

回 thinkself 的帖子

thinkself:能否有好的方法提高界面刷新速度,gui_clear()对界面刷新有影响?我也开启了WM_SetCreateFlags(WM_CF_MEMDEV);     (2017-06-06 11:48) 
用的什么平台,根据你平台的不同,快速刷新方案很多。
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-7 09:18:30 | 显示全部楼层

回 eric2013 的帖子

eric2013:用的什么平台,根据你平台的不同,快速刷新方案很多。 (2017-06-07 01:25) 
stm32 f429
回复

使用道具 举报

42

主题

1019

回帖

1150

积分

至尊会员

积分
1150
发表于 2017-6-7 10:15:35 | 显示全部楼层

回 thinkself 的帖子

thinkself:能否+你qq请教一些问题,我的qq530307510(2017-06-06 16:42)嬀/color]
我是菜鸟,还不如在这里交流,有问题大家一起解决,还活跃了这里的气氛。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115733
QQ
发表于 2017-6-7 11:21:03 | 显示全部楼层

回 thinkself 的帖子

thinkself:stm32 f429 (2017-06-07 09:18) 
使用什么图片都可以,你要做的就是上电后,将图片使用存储设备,将这些图片解码到存储设备里面,然后用存储设备函数绘制即可,速度相当流畅,
学习我们新版emWin教程相应章节就行,我都已经推荐这种方式和测试代码:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834
另外就是要使用三缓冲,不要使用存储设备。存储设备相比三缓冲还是有差距的。
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-7 13:40:16 | 显示全部楼层

回 eric2013 的帖子

eric2013:使用什么图片都可以,你要做的就是上电后,将图片使用存储设备,将这些图片解码到存储设备里面,然后用存储设备函数绘制即可,速度相当流畅,
学习我们新版emWin教程相应章节就行,我都已经推荐这种方式和测试代码:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834
另外就是要使用三 .. (2017-06-07 11:21) 
我的图片是仿照你的ATM_DEMO中画图的函数GUI_BITMAP画的,我看了其他几种画图函数,不太明白具体的速度差异,跟你的DEMO一样也没有使用sd和flash。利用B2C工具转成c文件,直接调用。主要是简单,易操作。
回复

使用道具 举报

11

主题

68

回帖

198

积分

初级会员

积分
198
 楼主| 发表于 2017-6-7 13:40:48 | 显示全部楼层

回 ghslfgkkl88 的帖子

ghslfgkkl88:我是菜鸟,还不如在这里交流,有问题大家一起解决,还活跃了这里的气氛。 (2017-06-07 10:15) 
互相学习啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115733
QQ
发表于 2017-6-8 02:26:57 | 显示全部楼层

回 thinkself 的帖子

thinkself:我的图片是仿照你的ATM_DEMO中画图的函数GUI_BITMAP画的,我看了其他几种画图函数,不太明白具体的速度差异,跟你的DEMO一样也没有使用sd和flash。利用B2C工具转成c文件,直接调用。主要是简单,易操作。 (2017-06-07 13:40) 
这样也可以的。没什么问题,应该还是你的程序设计问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 07:09 , Processed in 0.423726 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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