本帖最后由 zhengxk-344971 于 2019-7-8 17:14 编辑 最近用STemWin+FreeRTOS开发项目,在STM32F1上执行,采用外接12864OLED屏,用Cube建立工程,建立一个任务并成功打印字符串、汉字显示等,如果显示任务优先级最高,可以正常显示。但是如果在工程中增加一个任务,任务优先级如果与这个显示任务优先级相同或更高,则这个显示任务就不向液晶屏输出内容,哪怕增加的任务什么都不执行,且将任务内的delay时间设置很长。液晶屏采用驱动是LCDConf_Lin_Template.c。其他设置都试过,只与显示任务优先级有关,请教大神是何原因? 如果在执行完显示字符串命令后延时2秒钟,再在这个任务中创建窗口,则窗口能正常显示,前面的两秒钟液晶屏无显示。 |
评分
查看全部评分
你说的那个是在早期版本里面GUIConf.h文件里面有关于使用多任务调用STemWin的任务数设置:
#define GUI_MAX_TASK 5 // Max. number of tasks that may call emWin
现在改成GUIConf.c文件里面初始化设置:
GUITASK_SetMaxTask(3);
这句话的意思是可以有最多三个任务调用emWin的函数。
我的程序里面设置的是3,但是我实际应用是在一个任务里面管理emWin,其他任务不调用显示,按理说不应该有影响啊?!
感谢提醒!我把GUITASK_SetMaxTask(3)改为GUITASK_SetMaxTask(1)就可以正常显示了。
我以前也注意到这个地方了,感觉调用任务设置为3肯定没有问题,设置多一些不是更好吗?目前虽然问题解决了,但仍然不知道为什么。
我不清楚,说实话程序这种东西,只能靠自己解决
关键STemWin不提供源码,很多问题看不到也调不了,只能试着用,不方便。