ESP32获取当前执行的任务
时间: 2023-07-06 08:06:54 浏览: 130
在ESP32上,可以通过vTaskGetInfo()函数获取当前正在执行的任务的信息。该函数需要一个TaskStatus_t类型的结构体作为参数,用于存储任务的信息。
以下是一个简单的示例代码,演示如何使用vTaskGetInfo()函数获取当前正在执行的任务的信息:
```
TaskStatus_t taskStatus;
vTaskGetInfo(NULL, &taskStatus, pdTRUE, eRunning);
Serial.print("Current task name: ");
Serial.println(taskStatus.pcTaskName);
Serial.print("Current task stack high water mark: ");
Serial.println(taskStatus.usStackHighWaterMark);
Serial.print("Current task run time: ");
Serial.println(taskStatus.ulRunTimeCounter);
```
在这个示例中,我们首先创建一个TaskStatus_t类型的结构体taskStatus,然后调用vTaskGetInfo()函数来填充这个结构体。第一个参数为NULL,表示获取当前任务的信息。第二个参数为我们创建的taskStatus结构体。第三个参数pdTRUE表示获取任务的状态信息,eRunning表示获取当前正在执行的任务的信息。
最后,我们打印出获取到的任务的名称、堆栈高水位线和运行时间计数器。
值得注意的是,vTaskGetInfo()函数只能获取正在运行的任务的信息。如果你想获取其他任务的信息,你需要提供这些任务的句柄作为第一个参数。