你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STemWin+FreeRTOS在任务优先级低的任务中显示字符串等语句均...

[复制链接]
zxk126 提问时间:2019-7-8 17:12 /
本帖最后由 zhengxk-344971 于 2019-7-8 17:14 编辑

最近用STemWin+FreeRTOS开发项目,在STM32F1上执行,采用外接12864OLED屏,用Cube建立工程,建立一个任务并成功打印字符串、汉字显示等,如果显示任务优先级最高,可以正常显示。但是如果在工程中增加一个任务,任务优先级如果与这个显示任务优先级相同或更高,则这个显示任务就不向液晶屏输出内容,哪怕增加的任务什么都不执行,且将任务内的delay时间设置很长。液晶屏采用驱动是LCDConf_Lin_Template.c。其他设置都试过,只与显示任务优先级有关,请教大神是何原因?
如果在执行完显示字符串命令后延时2秒钟,再在这个任务中创建窗口,则窗口能正常显示,前面的两秒钟液晶屏无显示。

收藏 评论5 发布时间:2019-7-8 17:12

举报

5个回答
lebment 回答时间:2019-7-9 08:59:59
STemwin要设置为多任务,任务个数,参考安富莱教程可以设置,我记得是在cong。h

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

zxk126 回答时间:2019-7-9 15:17:29
lebment 发表于 2019-7-9 08:59
STemwin要设置为多任务,任务个数,参考安富莱教程可以设置,我记得是在cong。h ...

你说的那个是在早期版本里面GUIConf.h文件里面有关于使用多任务调用STemWin的任务数设置:
#define GUI_MAX_TASK 5 // Max. number of tasks that may call emWin
现在改成GUIConf.c文件里面初始化设置:
GUITASK_SetMaxTask(3);
这句话的意思是可以有最多三个任务调用emWin的函数。
我的程序里面设置的是3,但是我实际应用是在一个任务里面管理emWin,其他任务不调用显示,按理说不应该有影响啊?!
zxk126 回答时间:2019-7-9 15:27:00
lebment 发表于 2019-7-9 08:59
STemwin要设置为多任务,任务个数,参考安富莱教程可以设置,我记得是在cong。h ...

感谢提醒!我把GUITASK_SetMaxTask(3)改为GUITASK_SetMaxTask(1)就可以正常显示了。
我以前也注意到这个地方了,感觉调用任务设置为3肯定没有问题,设置多一些不是更好吗?目前虽然问题解决了,但仍然不知道为什么。
lebment 回答时间:2019-7-10 21:17:20
zhengxk-344971 发表于 2019-7-9 15:27
感谢提醒!我把GUITASK_SetMaxTask(3)改为GUITASK_SetMaxTask(1)就可以正常显示了。
我以前也注意到这个 ...

我不清楚,说实话程序这种东西,只能靠自己解决
zxk126 回答时间:2019-7-11 16:41:04
lebment 发表于 2019-7-10 21:17
我不清楚,说实话程序这种东西,只能靠自己解决

关键STemWin不提供源码,很多问题看不到也调不了,只能试着用,不方便。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版