本文主要是介绍基于Freertos的ESP32多任务点灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
xTaskCreateTask(Task1,"Blink 23",1024,NULL,1,NULL);
函数的第一个参数是所需要执行的任务Task1
函数的第二个参数是所需要执行任务的名字"Blink 23"
函数的第三个参数是执行这个任务所分配的内存‘
函数的第四个参数是需要传递的参数
函数的第五个参数是任务的优先级
函数的第六个参数是对任务的操作
vTaskDelay(1000);
vTaskDelay(pdMS_TO_TICKS(timeDelay));
vTaskDelay(3000/portTICK_PERIOD_MS));=
对于Freertos中延时函数不能用delay而是需要使用以上三种函数,其中参数的单位为ms
执行多任务点灯的步骤为
1创建任务,设置引脚模式,在循环中点亮LED,设置延时函数。
1创建另一个任务,设置引脚模式,在循环中点亮LED,设置延时函数。
void Task1(void *pt)
{pinMode(23, OUTPUT);while(1){digitalWrite(23,!digitalRead(23));vTaskDelay(1000);//vTaskDelay(pdMS_TO_TICKS(timeDelay));//vTaskDelay(3000/portTICK_PERIOD_MS));}
}void Task2(void *pt)
{pinMode(21,OUTPUT);while(1){digitalWrite(21,!digitalRead(21));vTaskDelay(3000);//vTaskDelay(pdMS_TO_TICKS(timeDelay));//vTaskDelay(3000/portTICK_PERIOD_MS));=}
}
void setup()
{xTaskCreate(Task1,"Blink 23",1024,NULL,1,NULL);xTaskCreate(Task2,"Blink 21",1024,NULL,1,NULL);
}void loop()
{}
这篇关于基于Freertos的ESP32多任务点灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!