测试出删除后,状态回是删除标志
但是,定义了句柄没有创建任务时,状态是就绪,那就无法判断是不是创建了改任务。
最终还是使用正点原子方法将句柄等于NULL来判断。
/**********************************************
*函数名:myTaskDelete
*功能:删除一个任务
*参数:xTaskToDelete 要删除任务的句柄,不能填NULL
*返回:无
*作者:悟爱电子
*时间:2019.7.24
*说明:删除任务
***********************************************/
void myTaskDelete(TaskHandle_t *xTaskToDelete)
{
if(*xTaskToDelete != NULL) //判断任务是否存在
{
taskENTER_CRITICAL(); //进入临界区
TaskHandle_t TempHandle = *xTaskToDelete; //将句柄复制到局部变量
(*xTaskToDelete) = NULL; //将句柄设为NULL,即为任务不存在
vTaskDelete(TempHandle); //删除任务
taskEXIT_CRITICAL(); //推出临界区
}
}
#include "my_task.h"
#include "FreeRTOS.h"
#include "task.h"
#include "delay.h"
#include "usart.h"
#include "stdio.h"
#include "string.h"
#include "my_lib.h"
void task_start(void *pvParameters); //任务函数声明
TaskHandle_t TaskStart_Handle;
void debug_fun(void *pvParameters); //任务函数声明
TaskHandle_t DebugFun_Handle; //任务句柄
voi