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

STM32Cubemxide使用freertos的消息队列(QUEUE)

STM32Cubemxide使用freertos的消息队列(QUEUE)

    • 1.为什么要使用freertos消息队列
      • 1.1概述
      • 1.2阻塞的情况
    • 1.实战案例
      • 3.实际代码

1.为什么要使用freertos消息队列

1.1概述

  • 队列主要是作为任务间通信的主要形式。
  • 可以用于在任务之间 以及中断和任务之间发送消息。
  • 队列用作线程安全的 FIFO(先进先出)缓冲区, 新数据被发送到队列的后面,但也可以发送到前面。

1.2阻塞的情况

  • 一个任务试图从一个空队列中读取时,该队列将 进入阻塞状态(因此它不会消耗任何 CPU 时间,且其他任务可以运行) 直到队列中的数据变得可用,或者阻塞时间过期
  • 一个任务试图写入到一个满队列时,该队列将 进入阻塞状态(因此它不会消耗任何 CPU 时间,且其他任务可以运行) 直到队列中出现可用空间,或者阻塞时间过期
  • 假如同一个队列上有多个处于阻塞状态的任务, 那么具有最高优先级的任务将最先解除阻塞。
  • 中断只能使用以 “FromISR” 结尾的 API 函数。
    总结:就是说队列空和满的情况下,是不会有读数据和写数据的情况的,任务可以直接走,或等有时间在走,一直等。也有多个任务同时去拿同一个队列的消息,如果没有顺序,那么也会导致数据乱。这种情况在全局变量下就比较常见,还有就是中断下拿数据,要关闭总中断,防止干扰。
  • <

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • xss漏洞(五,xss-labs靶场搭建及简单讲解)
  • 03 LVS+Keepalived群集
  • Windows应急响应-排查方式
  • C++ 中基本数据类型所占字节简单说明
  • IsaacLab | Workflow 中 rsl_rl 的 play.py 脚本精读
  • Linux useradd命令
  • pytorch学习笔记6 tensor拼接和拆分
  • ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION
  • XXE-lab-master靶场:PHP_xxe
  • 【生成式人工智能-三-promote 神奇咒语RL增强式学习RAG】
  • 记录|MVS和VM软件使用记录
  • 学习日志8.5--ARP攻击与防范
  • 深入探索Scikit-Learn聚类分析:方法与实践
  • OLAP技术与数据仓库:深度分析与决策支持
  • day_32
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • __proto__ 和 prototype的关系
  • CentOS7简单部署NFS
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript学习总结——原型
  • js作用域和this的理解
  • mysql 5.6 原生Online DDL解析
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Terraform入门 - 1. 安装Terraform
  • Vue.js-Day01
  • 多线程 start 和 run 方法到底有什么区别?
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 后端_MYSQL
  • 让你的分享飞起来——极光推出社会化分享组件
  • 使用Gradle第一次构建Java程序
  • 应用生命周期终极 DevOps 工具包
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #NOIP 2014# day.1 T2 联合权值
  • (10)STL算法之搜索(二) 二分查找
  • (超详细)语音信号处理之特征提取
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (一)RocketMQ初步认识
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (轉)JSON.stringify 语法实例讲解
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • /etc/shadow字段详解
  • @Bean有哪些属性
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ IDE ] SEGGER Embedded Studio for RISC-V
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [\u4e00-\u9fa5] //匹配中文字符