调度器挂起时,禁止使用RTOS-API 函数,包括printf,
避坑:本阿婆主在ESP32C3里面使用打印导致不断重启。
功效:防止数据运行一半切断。
vTaskSuspendAll挂起函数与 xTaskResumeAll恢复函数配套使用。
TaskHandle_t xHandle = NULL;
TaskHandle_t xHandle1 = NULL;
void vTaskCode(void *pvParam)
{
while (1)
{
printf("TEST2\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
void vTaskCode1(void *pvParam)
{
printf("TEST-SuspendAll\n");
vTaskSuspendAll(); // 挂起调度器。
xTaskResumeAll(); // 恢复挂起调度器。
vTaskDelete(NULL); // 删除任务
}
void app_main(void)
{
xTaskCreate(
vTaskCode, // 任务函数
"task", // 名字
4096, // 分配内存
NULL, // 传参数
1, // 任务优先级
&xHandle); // 句柄
xTaskCreate(
vTaskCode1, // 任务函数
"task1", // 名字
4096, // 分配内存
NULL, // 传参数
2, // 任务优先级
&xHandle1); // 句柄
vTaskDelay(1000 / portTICK_PERIOD_MS);
}