开发板选择:ESP32 Dev Module
一、基础代码
#include <Arduino.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
// 定义任务句柄
TaskHandle_t Task1Handle = NULL;
TaskHandle_t Task2Handle = NULL;
// 任务1的函数
void Task1(void *pvParameters)
{
/*--变量--*/
while(true)
{
/*--内容--*/
vTaskDelay(pdMS_TO_TICKS(3000)); // 等待3000毫秒
}
}
// 任务2的函数
void Task2(void *pvParameters)
{
/*--变量--*/
while(true)
{
/*--内容--*/
vTaskDelay(pdMS_TO_TICKS(1500)); // 等待1500毫秒
}
}
void setup()
{
Serial.begin(115200);
// 创建任务1
xTaskCreate(Task1, "Task1", 1000, NULL, 1, &Task1Handle);
// 创建任务2
xTaskCreate(Task2, "Task2", 1000, NULL, 1, &Task2Handle);
// 开始调度任务,10ms切换一次
vTaskStartScheduler();
}
void loop()
{
// 空函数,loop()并不执行任何实质性的工作,所有的工作都在任务中完成(不可删除loop)
}