STM32之FreeRTOS(七):任务通知模拟计数型信号量
任务通知模拟计数型信号量,实际与计数型信号量的发送与获取十分类似,只是将计数型信号量的发送与获取换成任务通知的发送与获取。
任务通知优缺点: 优点:可以提高响应速度并减少RAM使用。
缺点: 1、任务通知只能有一个接收任务 2、接收任务可以因为接收任务通知进入阻塞态,而发送任务不会因为发送失败进入阻塞态
一般使用步骤是:
1、发送任务通知
2、获取任务通知
第1步:发送任务通知
//任务句柄
TaskHandle_t SemapTakeTask_Handler;
//发送任务通知
xTaskNotifyGive(SemapTakeTask_Handler);//发送任务通知
SemapTakeTask_Handler为接收通知的任务句柄
第2步:获取任务通知
u32 NotifyValue=ulTaskNotifyTake(pdFALSE,portMAX_DELAY);//获取任务通知
//ulTaskNotifyTake函数返回的是任务通知之前任务通知值.所以NotifyValue-1才是当前任务通知值
总结
以上是任务通知模拟计数信号量的常规用法。