STM32之FreeRTOS(六):递归互斥型信号量用法
介绍一下递归型信号量的常规使用方法
注意:递归互斥型信号量与互斥型信号量相同不能用在中断服务函数中 原因如下: 1、由于优先级的限制z递归互斥信号量只能用在任务中不能用在中断服务函数中 2、中断服务函数不能设置阻塞时间
一般使用步骤是:
1、创建递归互斥型信号量
2、获取递归互斥信号量
3、释放递归互斥信号量
第1步:创建递归互斥信号量
//递归互斥信号量句柄
SemaphoreHandle_t ResursiveMutex;; //递归互斥信号量
//创建递归互斥信号量
ResursiveMutex= xSemaphoreCreateRecursiveMutex();
第2步:获取递归互斥信号量
xSemaphoreTakeRecursive(ResursiveMutex,(TickType_t)10);
//获取互斥信号量 阻塞时间设置为10
第3步:释放递归互斥信号量
注意:互斥信号量用完一定要释放 xSemaphoreGiveRecursive(ResursiveMutex) ; //释放互斥信号量
总结
以上是递归互斥信号量的常规使用方法。