天天看點

STM32之FreeRTOS(七):任務通知模拟二值信号量STM32之FreeRTOS(七):任務通知模拟二值信号量第1步:發送任務通知第2步:擷取任務通知總結

STM32之FreeRTOS(七):任務通知模拟二值信号量

文章目錄

  • STM32之FreeRTOS(七):任務通知模拟二值信号量
  • 第1步:發送任務通知
  • 第2步:擷取任務通知
  • 總結

任務通知模拟二值信号量,實際與二值信号量的發送與擷取十分類似,隻是将二值信号量的發送與擷取換成任務通知的發送與擷取。

任務通知優缺點: 優點:可以提高響應速度并減少RAM使用。 缺點: 1、任務通知隻能有一個接收任務 2、接收任務可以因為接收任務通知進入阻塞态,而發送任務不會因為發送失敗進入阻塞态

一般使用步驟是:

1、發送任務通知

2、擷取任務通知

第1步:發送任務通知

//任務句柄
TaskHandle_t DataProcess_Handler;
//發送任務通知
vTaskNotifyGiveFromISR(DataProcess_Handler,&xHigherPriorityTaskWoken);
//如果需要的話進行一次任務切換
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);

           

第2步:擷取任務通知

u32 NotifyValue=ulTaskNotifyTake(pdTRUE,portMAX_DELAY);	//擷取任務通知; 

if(NotifyValue==1)	//清零之前的任務通知值為1,說明任務通知有效
{	
	//user code
}
           

總結

以上是任務通知模拟二值信号量的正常用法。

繼續閱讀