| 
 
中级会员  
 
	积分375金钱375 注册时间2018-9-14在线时间51 小时 | 
 
 发表于 2022-9-6 15:52:53
|
显示全部楼层 
| 手上刚好有GD32F4的硬件,根据楼主的说明,写了个简单的测试,代码如下,倒不会出现卡死现象
 
 void task1_task(void *pvParameters)
 {
 int count=0;
 while(1)
 {
 count++;
 printf(" task1 is run %d \r\n\r\n",count);
 
 notify_result=xTaskNotifyGive(TASK2Task_Handler);
 
 if(notify_result!=pdPASS)
 printf("notify fail\r\n");
 vTaskDelay(10);
 }
 }
 
 void  task2_task(void *pvParameters)
 {
 uint8_t  count=0;
 while(1)
 {
 count++;
 //        while(0==ulTaskNotifyTake(pdTRUE,portMAX_DELAY));
 
 printf(" task2 run  time = %d!\r\n\r\n",count);
 
 xTaskNotifyGive(TASK3Task_Handler);
 
 vTaskDelay(10);
 }
 }
 
 
 void  task3_task(void *pvParameters)
 {
 uint8_t  count=0;
 while(1)
 {
 count++;
 if(count==3)
 {
 printf("delete task1...\r\n\r\n");
 vTaskDelete(TASK1Task_Handler);
 }
 
 printf(" task3  run  number = %d!\r\n\r\n",count);
 
 vTaskDelay(10);
 }
 }
 | 
 |