STM32 HAL freertos零基础(七)互斥量

1、互斥量

互斥量主要用于保护共享资源的访问,确保在同一时刻只有一个任务可以访问该资源。

互斥性:当一个任务获取了一个互斥量后,其他任务将无法再获取同一个互斥量,直到原始任务释放该互斥量。
优先级继承:为了防止优先级反转问题,FreeRTOS的互斥量支持优先级继承机制。当一个高优先级任务被低优先级任务阻塞时,低优先级任务会暂时提升自己的优先级,以尽快释放互斥量,让高优先级任务继续执行。
递归锁定:互斥量支持递归锁定,即获取互斥量的任务可以在未释放的情况下再次获取同一个互斥量,直到所有获取操作都被相应次数的释放操作所抵消。

操作需求:建立三个不同优先级的任务,演示一下优先级翻转,接着通过互斥量进行解决。

2、相关API函数

注意:互斥信号量不能用于中断服务函数。

xSemaphoreCreateMutex() //使用动态方法创建互斥信号量。
xSemaphoreCreateMutexStatic() //使用静态方法创建互斥信号量。
SemaphoreHandle_t xSemaphoreCreateMutex( void )
参数:
无
返回值:
成功,返回对应互斥量的句柄;
失败,返回 NULL 。

你可能感兴趣的:(零基础学习Freertos,stm32,嵌入式硬件,单片机)