1、二值信号量
FreeRTOS中的二值信号量是一种用于任务间同步的机制,它只能有两个状态:0 或 1。二值信号量通常用来表示某个事件是否发生,比如硬件中断发生时设置信号量为1,表示事件已发生;而任务在需要等待该事件发生时,会尝试获取信号量,若信号量为0则任务会被挂起等待,直到信号量变为1。二值信号量本质就是一个长度为1,大小为零的队列,只有0和1两种状态,通常情况下,用它来进行互斥访问或任务同步。
2、主要PAI函数
xSemaphoreCreateBinary() //使用动态方式创建二值信号量
xSemaphoreCreateBinaryStatic() //使用静态方式创建二值信号量
xSemaphoreGive() //释放信号量
xSemaphoreGiveFromISR() //在中断中释放信号量
xSemaphoreTake() //获取信号量
xSemaphoreTakeFromISR() //在中断中获取信号量