我正在使用VisualGFX为我的STM32F429i-Discovery板开发用户界面。 VisualGFX内置了freeRTOS用法,创建一个GUITask来处理GUI操作。然后,我尝试使用freeRTOS中的xTaskCreate API函数创建一个名为ControllerTask的新任务,这与创建GUITask的功能相同。FreeRTOS宣布第二个任务后即刻卡住
但是,只要我创建第二个任务,GUITask在我的GUI上显示一些奇怪的值,并且没有功能。
int main(void){
...
xTaskCreate(GUITask, (TASKCREATE_NAME_TYPE)"GUITask",
configGUI_TASK_STK_SIZE,
NULL,
configGUI_TASK_PRIORITY,
NULL);
xTaskCreate (ControllerTask, (TASKCREATE_NAME_TYPE)"ControllerTask",
configController_TASK_STK_SIZE,
NULL,
configController_TASK_PRIORITY,
NULL);
vTaskStartScheduler();
for (;;);
上面的代码显示了创建两个任务。 GUITask的优先级高于ControllerTask的优先级。下一段代码显示了Task的实现。
static void GUITask(void* params)
{
touchgfx::HAL::getInstance()->taskEntry();
}
static void ControllerTask(void* params)
{
while(1)
{
vTaskDelay(3000);
}
}
如可以看到的,在这个时刻的ControllerTask的实施仅延缓任务为每个它被切换到时间约3秒。
但是,GUITask卡住了,没有GUI更新或交互是可能的。
您是否检查过'xTaskCreate'的返回值? –
@DKrueger,我没有检查过。我该怎么做 ?它应该是什么? – 4DaMouf
您是否看到[The man](http://www.freertos.org/a00125.html).... – LPs