码迷,mamicode.com
首页 > 其他好文 > 详细

RTOS二值信号量使用流程

时间:2020-04-30 09:42:42      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:set   type   port   释放   lse   erp   rtm   hand   流程   

1.初始化二值信号量句柄

SemaphoreHandle_t BinarySemaphore; 

2.创建二值信号量

BinarySemaphore=xSemaphoreCreateBinary();

3.二值信号量的释放

BaseType_t xHigherPriorityTaskWoken;

xSemaphoreGiveFromISR(BinarySemaphore,&xHigherPriorityTaskWoken);

4.获取二值信号量

BaseType_t err=pdFALSE;

err=xSemaphoreTake(BinarySemaphore,portMAX_DELAY);  //portMAX_DELAY用于设置死等,也可设置数字表示二值信号量的阻塞时间,超过阻塞时间程序会继续往下执行,否则就一直等待

if(err==pdTRUE)获取信号量成功标志(用于定时阻塞时间内等待二值信号量)

5.任务切换

  二值信号量释放后如需要可做一次任务切换

portYIELD_FROM_ISR(xHigherPriorityTaskWoken);

RTOS二值信号量使用流程

标签:set   type   port   释放   lse   erp   rtm   hand   流程   

原文地址:https://www.cnblogs.com/qingyunboke/p/12806660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!