用任务1删除任务2 结果它把自己给删了
#define MY_TASK1_PRIO 1
#define MY_TASK1_SIZE 128
TaskHandle_t myTask1TaskHandle;
void myTask1(void *pvParameters);//任务函数
#define MY_TASK2_PRIO 2
#define MY_TASK2_SIZE 128
TaskHandle_t myTask2TaskHandle;
void myTask2(void *pvParameters);//任务函数
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4
delay_init(); //延时函数初始化
uart_init(115200); //初始化串口
LED_Init(); //初始化LED
xTaskCreate(myTask1,"myTask1",MY_TASK1_SIZE,NULL,MY_TASK1_PRIO,myTask1TaskHandle);
xTaskCreate(myTask2,"myTask2",MY_TASK2_SIZE,NULL,MY_TASK2_PRIO,myTask2TaskHandle);
vTaskStartScheduler();
}
void myTask1(void *pvParameters)
{
u8 taskNum = 0;
for(;;)
{
printf("myTask1打印rn");
printf("taskNum计数:%drnrn",taskNum);
taskNum++;
if(taskNum == 10)
{
vTaskDelete(myTask2TaskHandle);
printf("myTask2被删除rn");
}
vTaskDelay(500);
}
}
void myTask2(void *pvParameters)
{
for(;;)
{
printf("myTask2打印rn");
vTaskDelay(500);
}
}
打印结果:
......
myTask2打印
myTask1打印
taskNum计数:7
myTask2打印
myTask1打印
taskNum计数:8
myTask2打印
myTask1打印
taskNum计数:9
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
2020-6-15 13:41:41
创建任务函数是取任务句柄地址 &myTask1TaskHandle 不是 myTask1TaskHandle
创建任务函数是取任务句柄地址 &myTask1TaskHandle 不是 myTask1TaskHandle
举报
2020-6-15 14:00:32
打印出来是这样的,删除是没错了,但是又有了新问题:
为啥先打印的--------myTask2被删除
按道理应该先打印-----myTask1打印
myTask2打印
myTask1打印
taskNum计数:9
myTask2被删除
myTask1打印
taskNum计数:10
myTask1打印
taskNum计数:11
myTask1打印
taskNum计数:12
打印出来是这样的,删除是没错了,但是又有了新问题:
为啥先打印的--------myTask2被删除
按道理应该先打印-----myTask1打印
myTask2打印
myTask1打印
taskNum计数:9
myTask2被删除
myTask1打印
taskNum计数:10
myTask1打印
taskNum计数:11
myTask1打印
taskNum计数:12
举报