一、线程创建函数
函数 | void xTaskCreate ( pdTASK_CODE pvTaskCode, const portCHAR * const pcNane, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask); |
---|---|
作用 | 创建线程 |
pvTaskCode | 指向任务的实现函数的指针 |
pcNane | 具有描述性的任务名。FreeRTOS 不会使用它。 |
usStackDepth | 指定任务堆栈的大小 |
pvParameters | 指针用于作为一个参数传向创建的任务 |
uxPriority | 任务运行时的优先级 |
pvCreatedTask | 用于传递任务的句柄,可以引用从而对任务进行其他操作 |
二、实验程序
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#define TAG "main"
void task1(void *pvParameters)
{
while (1)
{
vTaskDelay(1000);
ESP_LOGI(TAG, "task1 running");
}
}
void task2(void *pvParameters)
{
while (1)
{
vTaskDelay(2000);
ESP_LOGI(TAG, "task2 running");
}
}
void app_main(void)
{
xTaskCreate(task1, "task1", 2048, NULL, 1, NULL);
xTaskCreate(task2, "task2", 2048, NULL, 1, NULL);
while (1)
{
vTaskDelay(1000 / portTICK_PERIOD_MS);
// ESP_LOGI(TAG, "task2 running");
}
}
标签:task1,task2,NULL,入门,ESP32,pvParameters,TAG,多线程,void
From: https://www.cnblogs.com/jzcn/p/16832739.html