freertos二值信号量
时间: 2023-08-01 22:14:02 浏览: 269
STM32MP157 FreeRTOS实现二值信号量【支持STM32MP1系列单片机_FreeRTOS系统】.zip
FreeRTOS提供了三种创建二值信号量的函数:vSemaphoreCreateBinary()、xSemaphoreCreateBinary()和xSemaphoreCreateBinaryStatic()。其中,vSemaphoreCreateBinary()是老版本的函数,会自动释放一个信号量;xSemaphoreCreateBinary()是新版本的函数,会生成一个空的信号量,不会自动释放;xSemaphoreCreateBinaryStatic()是静态创建二值信号量的函数。\[1\]
使用xSemaphoreCreateBinary()函数创建的二值信号量默认是空的,即刚创建好的二值信号量使用xSemaphoreTake()函数是获取不到的。而xSemaphoreCreateBinaryStatic()函数则可以静态创建二值信号量。\[2\]
二值信号量通常用于互斥访问或同步。与互斥信号量相比,二值信号量没有优先级继承机制,更适合用于同步任务与任务或任务与中断之间的同步。而互斥信号量则适合用于简单的互斥访问。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [FreeRTOS的学习(八)——1.二值信号量](https://blog.csdn.net/qq_39397153/article/details/124921012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文