- void vTask1(void)
- {
- // xTaskNotifyGive(xHandleTaskGame); //发出信号量
- while(1)
- {
- vTaskSuspend(xHandleTask2); //挂起任务
- vTaskResume(xHandleTask2); //恢复任务
- vTaskDelay(100);
- }
- }
- void vTask2(void)
- {
- uint32_t count=0;
- while(1)
- {
- ulTaskNotifyTake(pdTRUE,portMAX_DELAY); //等待信号量
- count ++;
- }
- }
复制代码
两个任务TASK1 TASK2,TASK1只要挂起和恢复TASK2,TASK2的任务信号ulTaskNotifyTake(pdTRUE,portMAX_DELAY)就变得有效,count++;
测试MCU STM32F030R8T6;FreeRTOS Kernel V10.2.1;
测试和优先级无关,堆栈没有溢出
这个问题分析了几天没找到原因,最后把任务信号量改成独立创建的信号量算是解决了问题。
刚测试你说的问题了,返回值是0。
一周热门 更多>