求解,emwin不好使,函数调用了没反应

2019-12-22 13:47发布

装了st的freertos包,系统开两个任务,其中一个任务负责初始化emwin。初始化完成之后,两个任务都调用GUI_DispString显示字符,但是只有一个任务(gui_init所在的那个)的字符能够显示出来。如何解决这个问题让两个任务的字符都能显示?
试了把emwin的初始化放在任务建立之前,结果是两个任务都无法显示。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
himemiyachikane
1楼-- · 2019-12-22 15:44
本帖最后由 himemiyachikane 于 2017-10-1 08:37 编辑


问题已经解决。
这种情况每个任务显示之前要运行GUITASK_INIT(),不知道怎么回事数据手册里没有写。刚刚试出来的。
kinsno
2楼-- · 2019-12-22 19:03
EMWIN其实就是UCGUI,它平时是不显示的,你刷新这个字符显示,实际上它并不显示的。你调用的API,其实都是在操作RAM区,最后统一由GUI_EXEC()来显示的,印象中是这个,或者调用GUI_Delay()(内启GUI_eXEC)
解决办法:你只要在一个任务里,定时调用GUI_EXEC(),或直接使用GUI_delay(xxx)即可。



Excellence
3楼-- · 2019-12-22 21:13
 精彩回答 2  元偷偷看……
himemiyachikane
4楼-- · 2019-12-23 02:22
kinsno 发表于 2017-9-29 15:31
EMWIN其实就是UCGUI,它平时是不显示的,你刷新这个字符显示,实际上它并不显示的。你调用的API,其实都是 ...

我就是这么干的啊不然第一个任务也显示不出来啊
kinsno
5楼-- · 2019-12-23 03:33
himemiyachikane 发表于 2017-9-29 18:18
我就是这么干的啊不然第一个任务也显示不出来啊

你的EMWIN任务,即调用GUI_Delay这个函数的任务,应该得是最低先级吧,会 不会是这里遗漏了?



Doding
6楼-- · 2019-12-23 09:10
一个任务专门管EMWIN,其他任务给这个任务发消息更新,不直接调用Emwin

一周热门 更多>