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

wordpress x站徐州建站费用

wordpress x站,徐州建站费用,推广网络网站,怎么自己做视频网站一。信号量的概念与应用 信号量定义 FreeRTOS信号量介绍 FreeRTOS信号量工作原理 1.信号量的定义 多任务环境下使用,用来协调多个任务正确合理使用临界资源。 2.FreeRTOS信号量介绍 Semaphore包括Binary,Count,Mutex; Mutex包…

一。信号量的概念与应用

信号量定义

FreeRTOS信号量介绍

FreeRTOS信号量工作原理

1.信号量的定义

        多任务环境下使用,用来协调多个任务正确合理使用临界资源。

2.FreeRTOS信号量介绍

        Semaphore包括Binary,Count,Mutex;

        Mutex包括RecursiveMutex,Mutex。

3.FreeRTOS信号量工作原理

        任务1在运行时,使用了一个临界资源,他发送一个二值信号量同步信号,表示占用资源,任务2来运行时,发现有任务占用资源(信号量同步信号),所以堵塞任务,等待下资源的释放。

二。二值信号量函数的应用

1.功能需求

1、修改按键功能

2、当按键按下触发打印一次CPU利用率

3、使用二值信号量实现按键与任务间同步

2.API详解

(1)xSemaphoreCreateBinary()创建二值信号量

(2)xSemaphoreGive()任务间释放信号量

 (3)xSemaphoreGiveFromISR()任务间释放信号量

 (4)xSemaphoreTake()任务间获取信号量 semphr.h

 (5)xSemaphoreTakeFromISR()中断获取信号量

 3.任务实现

1.创建二值信号量

2.在任务中获取信号量

3.在中断中发送信号量

 3.1Cubemx创建工程(在上一个基础上queue队列)

(1)在FREERTOS中创建二值信号量

二值信号量在FREERTOS的初始化的时候就会创建(返回信号量的句柄)

3.2 步骤:

(1)把FREERTOS.c中的二值信号量声明外接到GPIO.c中(GPIO.c中有按键按下的GPIO中断处理)

#include "FreeRTOS.h"
#include "task.h"
#include "main.h"
#include "cmsis_os.h"extern osSemaphoreId CpuPrintBinarySemHandle;

(2)在GPIO.c中的按键中断回调函数中加入任务释放信号量函数 

xSemaphoreGiveFromISR(CpuPrintBinarySemHandle,NULL);

(3)FREERTOS.c中的串口输出的主函数中

if(xSemaphoreTake(CpuPrintBinarySemHandle,portMAX_DELAY) == pdPASS){

结果

        复位直接打印程序的cpu利用率,由于没有运行就输出,所以只能打印printf,字符串没有东西,按key3释放信号量,这个时候主函数中接受到有信号量,所以再次运行。

三。技术信号量函数的应用

功能分析

API详解

功能实现

1.功能分析

1、修改按键功能,模拟停车位出入功能

2、当按键K3按下获取车位

3、当按键K4按下释放车位

2.API讲解

xSemaphoreCreateCounting()

 uxSemaphoreGetCount()

3.功能实现

1.按键k4初始化

2.创建技术信号量

3.k3按下获取停车位

4.按下释放停车位

1.cubemx创建工程

(1)Key4(PF11)初始配置,中断配置

 (2)FREERTOS中使能以下后,才可以添加计数信号量

 (3)创建计数信号量(初始化为4)

 2.步骤:

(1)在FREERTOS.c中有设置的计数信号量,extern设置到GPIO.c中

extern osSemaphoreId KeyCountingSemHandle;

(2)GPIO.c的中断回调函数中,Give为释放信号量,Take为使用信号量,Key3为释放,Key为使用。

《获取》

《释放》

 

//key3中
if(xSemaphoreTakeFromISR(KeyCountingSemHandle,NULL)==pdPASS){printf("Take success\n");
}else{printf("Take fail\n");
}
//key4中
if(xSemaphoreGiveFromISR(KeyCountingSemHandle,NULL)==pdPASS){printf("Give success\n");
}else{printf("Give fail\n");
}

结果:

按Key3为开走车,Key为停车

四。信号量实现原理

1.信号量创建删除

 

2.信号量释放

 

3.信号量获取

 

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

相关文章:

  • 扁平化网站后台网站页面设计怎么做
  • 网站首页像素网站头部优化文字怎么做
  • 群辉nas怎么做网站网络公司网站设计维护合同
  • 专业建站制作大数据营销心得体会
  • 西部空间官方网站wordpress数据搬移
  • 做推广都有什么网站怎么查看网站有没有备案
  • 简述一下网站的设计流程wordpress怎么在本地安装
  • 过期域名查询网站番禺有经验的网站建设
  • 如何在网站上推广自己的链接建立网站设计
  • 江西中创建设有限公司网站黄骅市天气预报15天气
  • 做网站什么主题好一个新手怎么做推广
  • xml的网站地图织梦制作企业网站建设需求调研表
  • 无锡高端网站建设公司哪家好网站建设网络推广平台
  • 网站制作设计机构十张优秀海报设计欣赏
  • 网站流程图设计北京软件公司招聘信息最新
  • 网站没备案可以上线吗广州建网站定制
  • 学生网站建设的心得wordpress显示数据库请求
  • 中国婚恋网站排名做网站首页的图片素材
  • 建设纺织原料网站常熟有没有做阿里巴巴网站
  • 网站建设的职责私密浏览器在线观看
  • 天河做网站企业三库一平台个人信息查询系统
  • 社科联网站建设情况汇报软件开发工具通常也称为
  • 淘宝联盟 做网站网站备案 类型
  • 南宁江南区网站制作价格阿里云轻量级服务器搭建wordpress
  • 音乐网站如何建设西安有哪些公司
  • 手机站制作的网站架构上海网站建设优化seo
  • 网站集约化建设报告大型php网站系统
  • 现在ui做的比较好的网站家居网站 模板
  • 福州网站建设市场门户网站建设收费
  • 百度怎么做网站广告制作一个网站并上传访问