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

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

[复制链接]
zhengxk-344971 提问时间: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

查看全部评分

zhengxk-344971 回答时间: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,其他任务不调用显示,按理说不应该有影响啊?!
zhengxk-344971 回答时间: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)就可以正常显示了。
我以前也注意到这个 ...

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

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

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版