当前位置: 首页 > news >正文

温州网站建设定制沈阳网站seo排名

温州网站建设定制,沈阳网站seo排名,中英文网站asp怎么做,wordpress算术验证码什么是信号量? 信号量(Semaphore),是在多任务环境下使用的一种机制,是可以用来保证两个或多个关键代 码段不被并发调用。 信号量这个名字,我们可以把它拆分来看,信号可以起到通知信号的作用&am…

什么是信号量?

信号量(Semaphore),是在多任务环境下使用的一种机制,是可以用来保证两个或多个关键代 码段不被并发调用。 信号量这个名字,我们可以把它拆分来看,信号可以起到通知信号的作用,然后我们的量还可以 用来表示资源的数量,

当我们的量只有0和1的时候,它就可以被称作二值信号量,只有两个状 态,当我们的那个量没有限制的时候,它就可以被称作为计数型信号量。 信号量也是队列的一种。 什么是二值信号量?

二值信号量其实就是一个长度为1,大小为零的队列,只有0和1两种状态,通常情况下,我们用 它来进行互斥访问或任务同步。

互斥访问:比如门钥匙,只有获取到钥匙才可以开门

任务同步:比如我录完视频你才可以看视频

 1. 创建二值信号量

SemaphoreHandle_t xSemaphoreCreateBinary( void )

参数: 无

返回值: 成功,返回对应二值信号量的句柄; 失败,返回 NULL 。

2. 释放二值信号量

BaseType_t xSemaphoreGive( SemaphoreHandle_t xSemaphore )

参数: xSemaphore:要释放的信号量句柄

返回值: 成功,返回 pdPASS ; 失败,返回 errQUEUE_FULL 。

3、获取二值信号量

seType_t xSemaphoreTake( SemaphoreHandle_t xSemaphore, TickType_t xTicksToWait );

参数: xSemaphore:要获取的信号量句柄

xTicksToWait:超时时间,0 表示不超时,

portMAX_DELAY表示卡死等待;

返回值: 成功,返回 pdPASS ; 失败,返回 errQUEUE_FULL 。

实操 实验需求 创建一个二值信号量,按下 KEY1 则释放信号量,按下 KEY2 获取信号量。

代码:

myBinarySemHandle = xSemaphoreCreateBinary();void StartTaskGive(void const * argument)
{/* USER CODE BEGIN StartTaskGive *//* Infinite loop */for(;;){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET){osDelay(20);if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET){if(xSemaphoreGive( myBinarySemHandle)==pdTRUE)printf("二值信号量放入成功\r\n");elseprintf("二值信号量放入失败\r\n");}while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET);}osDelay(10);}/* USER CODE END StartTaskGive */
}/* USER CODE BEGIN Header_StartTaskTake */
/**
* @brief Function implementing the taskTake thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTaskTake */
void StartTaskTake(void const * argument)
{/* USER CODE BEGIN StartTaskTake *//* Infinite loop */for(;;){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==GPIO_PIN_RESET){osDelay(20);if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==GPIO_PIN_RESET){if(xSemaphoreTake(myBinarySemHandle,portMAX_DELAY)==pdTRUE)printf("取出二值信号量成功\r\n");elseprintf("取出二值信号量失败\r\n");}while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==GPIO_PIN_RESET);}osDelay(10);}/* USER CODE END StartTaskTake */
}

http://www.yayakq.cn/news/962482/

相关文章:

  • 网站开发的相关技术网站页面链接结构
  • 分红盘网站开发多少钱建设厅执业资格注册中心网站
  • 中职教材 网站建设红色系 网站
  • 官方网站minecraft腾讯企点是什么
  • 在手机上怎么建造网站杭州做公司网站的公司
  • 长春网站建设案例做游戏视频去哪个网站好
  • 那些网站百度抓取率比较高佛山英文网站建设
  • 统计网站建设程序石家庄网站系统建设
  • 关于建设官方网站的申请青岛惠中建设监理有限公司网站
  • 哔哩哔哩推广网站网站建设找盖亚科技
  • 做网站郑州汉狮厦门建设集团网站
  • 做网站需要给设计提供网站建设与维护方式
  • 茌平网站建设道气钻北京网站改版报价
  • 佛山网站建设维护小橘子被做h网站
  • 网站开发主要用到哪些工具iis默认网站停止
  • 企业网站模板下载哪里好wordpress随意布局
  • 网站做支付链接安全吗网站建设尢首先金手指
  • 呼家楼网站建设自己如何申请域名
  • 网站开发报告个人网站开发需求分析
  • 建立一个网站平台需要多少钱高碑店市建设局网站
  • 分享10个国外优秀的平面设计网站国企网站建设的意义
  • 青海高端网站建设多少钱做网络写手最好进那个网站
  • 成都住建厅官方网站怎样建网站教程
  • 企业网站开发php安阳网络教研平台登录
  • 外贸网站谷歌seo网站建设淘宝模板
  • 如何做网站的维护工作哪个软件可以自动排名
  • 长沙网站建设案例自建设网站
  • 口碑好网站建设定制发广告平台有哪些
  • 网站建设捌金手指下拉四给菠菜网站做支付
  • 商城网站带宽控制wordpress 支付宝付款