ESP-IDF框架下分离任务的例子
时间: 2023-07-26 16:33:49 浏览: 92
esp-idf-v4.4.3
在 ESP-IDF 框架下,我们可以通过分离任务的方式来实现多线程并发的操作。下面是一个简单的例子:
```c
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
void task1(void *pvParameters)
{
while(1)
{
printf("This is task1\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
void task2(void *pvParameters)
{
while(1)
{
printf("This is task2\n");
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
void app_main()
{
xTaskCreate(task1, "task1", 2048, NULL, 5, NULL);
xTaskCreate(task2, "task2", 2048, NULL, 5, NULL);
}
```
在这个例子中,我们定义了两个任务 `task1` 和 `task2`,分别输出不同的信息,并且通过 `vTaskDelay` 函数控制任务执行的间隔时间。在 `app_main` 函数中,我们使用 `xTaskCreate` 函数创建了这两个任务,并指定了任务的优先级和堆栈大小。
当我们运行这个程序时,可以看到两个任务交替执行,输出不同的信息。这就是通过分离任务的方式实现多线程并发操作的一个简单例子。
阅读全文