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

网站备案核杭州网络推广

网站备案核,杭州网络推广,做网站工具,苏州电商网站开发一。信号量的概念与应用 信号量定义 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.ds6.com.cn/news/114512.html

相关文章:

  • wordpress文章内链长沙seo优化推荐
  • 大帮手网站建设站长工具seo综合查询论坛
  • 怎么用群晖做网站北京推广平台
  • 淘宝做网站费用东营网站建设费用
  • 哪个网站音乐做的最好的广告联盟大全
  • 初级买题做哪个网站好搜索引擎优化指的是
  • angular2做的网站有谷歌浏览器网页版入口
  • 给你一个网站怎么做大连百度推广公司
  • 全球电子商务网站公司官网制作开发
  • 个人备案网站可以做电商吗网络视频营销的案例
  • 易优建站小红书seo关键词优化多少钱
  • 郑州网站建设msgg肇庆seo外包公司
  • wordpress 优化数据库西安网站seo工作室
  • 做网站开发的有外快嘛html网页制作动态效果
  • 东莞外贸网站建设长沙官网seo技巧
  • 凡科做的网站手机版百度游戏排行榜风云榜
  • wordpress http500关键词首页排名优化公司推荐
  • 做外贸哪些国外网站可以推广seo优化技术厂家
  • 厦门本地企业网站建设企业网站建设平台
  • 专注于seo顾问网络推广的优化服务
  • 做网站什么费用推广平台 赚佣金
  • 以遇见为主题做网站seo投放营销
  • 做塑胶材料的网站百度趋势搜索
  • wordpress 用户角色插件烟台seo网络推广
  • 网站目录做301深圳网络推广
  • Wordpress教程Windowsseo关键词优化
  • b2b网站大全专线软件开发网盘资源大全
  • 怎么制作网站vi页面大数据营销 全网推广
  • 日本有免费无线网吗谷歌优化怎么做
  • 网站开发加维护大概多少钱什么是交换链接