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

FreeRTOS-计数型信号量

实验目的

创建一个计数型信号量,按下 KEY1 则释放信号量,按下 KEY2 获取信号量。

实验代码

void StartTtaskGive(void const * argument)
{
  /* USER CODE BEGIN StartTtaskGive */
  /* 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(myCountingSemHandle) == pdTRUE)
                  printf("计数型信号量放入成功\r\n");
              else
                  printf("计数型信号量放入失败\r\n");
          }
          while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == GPIO_PIN_RESET);
      }
    osDelay(10);
  }
  /* USER CODE END StartTtaskGive */
}

/* 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(myCountingSemHandle,0) == pdTRUE)
                  printf("计数型信号量获取成功\r\n");
              else
                  printf("计数型信号量获取失败\r\n");
          }
          while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1) == GPIO_PIN_RESET);
      }
    osDelay(10);
  }
  /* USER CODE END StartTaskTake */
}

实验结果

因为设置的长度是3,所以只能存放3位计数型信号量

相关文章:

  • 【OpenCV C++】图像增强:三种锐化方式,图像清晰度增强
  • TCP基本入门-简单认识一下什么是TCP
  • 关于“你对 Spring Cloud 的理解”
  • SpringBoot 中的 Redis 序列化
  • 【全栈开发】从0开始搭建一个图书管理系统【一】框架搭建
  • DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略
  • 微信小程序细小知识累计记录
  • 1. HTTP 数据请求
  • 期权帮|国内期权交易投资人做卖出期权价差交易收取的保证金是单边的还是双向的?
  • SpringBoot3—快速入门
  • 大白话css第三章实践与提升
  • seacmsv9报错注入管理员账号密码,order by 注入,如何解决 information_schema关键字被过滤掉了
  • AF3 _make_msa_df函数解读
  • Java语言Leetcode中常用的一些基础语法
  • 【洛谷贪心算法题】P1094纪念品分组
  • (八)Java-Collection
  • Ray生产集群配置
  • 图像处理基础(8):图像的灰度直方图、直方图均衡化、直方图规定化(匹配)
  • 目标检测YOLO实战应用案例100讲-面向无人机图像的小目标检测
  • 1.2.2 使用Maven方式构建Spring Boot项目
  • 乐清网站制作公司/百度收录规则2022
  • 做宝宝衣服的网站/2023年7月最新新闻摘抄
  • 个人主页网站制作教程/游戏推广渠道有哪些
  • 怎么做各类网站/站长工具箱
  • 做一个网站每年多少钱/专业seo网络营销公司
  • 开发公司取名/seo网站优化推广教程