Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门任务间的通讯-消息队列【入门四】

继续上一篇任务创建

【Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门任务间的通讯-信号量【入门三】-CSDN博客】

今天要实现消息队列进行任务的通讯

一、从上一篇信号量通讯demo拷贝一份重命名,还是之前的两个任务,重命名了。

	xTaskCreatePinnedToCore(SendQueueTask,"SendQueueTask",2048,NULL,4,NULL,1);xTaskCreatePinnedToCore(GetQueueTask,"GetQueueTask",2048,NULL,4,NULL,1);

二、看下今天要用到的API

1、xQueueCreate(uxQueueLength, uxItemSize)创建队列【uxQueueLength队列长度,uxItemSize队列类型的大小】返回队列句柄

2、xQueueSend(xQueue, pvItemToQueue, xTicksToWait)发送消息【xQueue句柄,pvItemToQueue发送数据,xTicksToWait等待时间】

3、xQueueReceive(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait)接收消息【xQueue句柄,pvBuffer接收缓存,xTicksToWait等待时间】

注意:中断中使用是要带FromISR的API

三、创建队列【注意队列的创建需要再任务之前就创建好】

三、函数中增加消息的发送和接收。

QueueHandle_t s_tQueue;void SendQueueTask(void *param)
{uint8_t ucSendData = 0;while(1){xQueueSend(s_tQueue, &ucSendData, 1000 / portTICK_PERIOD_MS);printf("send queue task,value=%d\r\n", ucSendData++);vTaskDelay(1000 / portTICK_PERIOD_MS);}
}void GetQueueTask(void *param)
{uint8_t ucRecvData;while(1){if (pdTRUE == xQueueReceive(s_tQueue, &ucRecvData, portMAX_DELAY))printf("recv queue data = %d\r\n", ucRecvData);}
}

这里需要注意的是:

1、任务中数据类型要和创建时候定义的类型一样。当然也可以是结构体。

 四、下载验证,【发送任务1000ms发送0开始加1的数据,接收任务1000ms接收到数据,并打印接收的数据】

可以看到结果实验结果正确了。下一篇我们一起用事件组来任务通讯。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

workman服务端开发模式-应用开发-后端api推送修改二

需要修改两个地方&#xff0c;第一个是总控制里面的续token延时&#xff0c;第二个是操作日志记录 一、总控续token延时方法 在根目录下app文件夹下controller文件夹下Base.php中修改isLoginAuth方法&#xff0c;具体代码如下&#xff1a; <?php /*** 总控制* User: 龙哥…

ReactPress 1.6.0:重塑博客体验,引领内容创新

ReactPress 是一个基于Next.js的博客&CMS系统&#xff0c; Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 体验地址&#xff1a;http://blog.gaoredu.com/ 今天&#xff0c;我们自豪地宣布ReactPress 1.6.0版本的正式发布&#xff0c;…

重拾设计模式--外观模式

文章目录 外观模式&#xff08;Facade Pattern&#xff09;概述定义 外观模式UML图作用 外观模式的结构C 代码示例1C代码示例2总结 外观模式&#xff08;Facade Pattern&#xff09;概述 定义 外观模式是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供了一个统一…

接口测试Day03-postman断言关联

postman常用断言 注意&#xff1a;不需要手敲&#xff0c;点击自动生成 断言响应状态码 Status code&#xff1a;Code is 200 //断言响应状态码为 200 pm.test("Status code is 200", function () {pm.response.to.have.status(200); });pm: postman的实例 test() …

提升专业素养的实用指南

在当今竞争激烈的职场&#xff0c;仅仅拥有专业技能已经不足以立于不败之地。持续提升自身专业素养&#xff0c;才是保持竞争力、实现职业目标的关键。那么&#xff0c;如何才能有效地提升专业素养&#xff0c;在职业道路上走得更稳、更远呢&#xff1f;以下是一些实用性建议&a…

网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

tryhackme-Pre Security-Windows Fundamentals 3(Windows基础知识3)

任务1&#xff1a;Introduction&#xff08;介绍&#xff09; 我们将继续探索 Windows 操作系统。 总结前两个房间&#xff1a; 在 Windows Fundamentals 1 中&#xff0c;我们介绍了桌面、文件系统、用户帐户控制、控制面板、设置和任务管理器。在 Windows Fundamentals 2 中…

pdf转换文本:基于python的tesseract

电脑系统&#xff1a;win10专业版 不能访问需要魔法上网 安装tesseract 在GitHub上下载:tesseract下载地址 找到自己电脑版本下载 双击安装&#xff0c;一路next&#xff0c;除了这一步 第三个加号点开&#xff0c;把带Chinese的都勾选 安装完成后配置环境&#xff0c;Win …

国产云厂商数据库产品--思维导图

为了对比国产云厂商数据库产品&#xff0c;我查阅了各云厂商的官方介绍&#xff0c;墨天轮等平台的部分数据和文章&#xff0c;整理出了简易的思维导图。 会去整理&#xff0c;也是因为有点懵&#xff0c;比如说阿里的PolarDB数据库&#xff0c;看起来就是一个数据库&#xff…

MongoDB(下)

MongoDB 索引 MongoDB 索引有什么用? 和关系型数据库类似&#xff0c;MongoDB 中也有索引。索引的目的主要是用来提高查询效率&#xff0c;如果没有索引的话&#xff0c;MongoDB 必须执行 集合扫描 &#xff0c;即扫描集合中的每个文档&#xff0c;以选择与查询语句匹配的文…

Unity 3D饼状图效果

一. 效果展示 二.基础类 using System.Collections; using System.Collections.Generic; using UnityEngine;public class DrawCylinder : MonoBehaviour {// 网格渲染器MeshRenderer meshRenderer;// 网格过滤器MeshFilter meshFilter;// 用来存放顶点数据List<Vector3>…

吉利前端、AI面试

诸葛耘墒的在线视频面试 1、小程序端AI视频面试 虚拟人面试官提问 视频口述回答 1、最近的两份工作经历&#xff0c;以及上一份离职原因2、在过往的工作或生活中&#xff0c;需要学习掌握一项与工作有关的技能或兴趣爱好时&#xff0c;你会运用哪些方法和诀窍&#xff0c;投入…

基于容器的云原生,让业务更自由地翱翔云端

无论是要构建一个应用或开发一个更庞大的解决方案&#xff0c;在技术选型时&#xff0c;技术的开放性和可移植性已经成为很多企业优先考虑的问题之一。毕竟没人希望自己未来的发展方向和成长速度被自己若干年前选择使用的某项技术所限制或拖累。 那么当你的业务已经上云&#x…

S32K324 Stack异常分析及解决方案

文章目录 前言正向排查尝试反向排查问题原因分析问题解决处理总结前言 在项目开发过程中,在一次软件变更时,调整了task优先级之后导致应用层软件中的float数据经常性的变为NAN,导致应用层功能失效。本文记录下这个bug的分析及解决过程。 正向排查尝试 由于问题复现的概率…

28、基于springboot的房屋租赁系统

房屋是人类生活栖息的重要场所&#xff0c;随着城市中的流动人口的增多&#xff0c;人们对房屋租赁需求越来越高&#xff0c;为满足用户查询房屋、预约看房、房屋租赁的需求&#xff0c;特开发了本基于Spring Boot的房屋租赁系统。 本文重点阐述了房屋租赁系统的开发过程&…

[react] <NavLink>自带激活属性

NavLink v6.28.0 | React Router 点谁谁就带上类名 当然类名也是可以自定义 <NavLinkto{item.link}className{({ isActive }) > (isActive ? 测试 : )}>{item.title}</NavLink> 有什么用?他会监听你的路由,刷新的话也会带上激活效果

ChatGPT重大更新:新增实时搜索和高级语音

12月17日消息&#xff0c;据报道&#xff0c;OpenAI开启了第八天技术分享直播&#xff0c;对ChatGPT搜索功能进行了大量更新。 此次ChatGPT新增的功能亮点纷呈。其中&#xff0c;实时搜索功能尤为引人注目。OpenAI对搜索算法进行了深度优化&#xff0c;使得用户提出问题后&…

单片机上电后程序不运行怎么排查问题?

1.电源检查。使用电压表测量单片机的电源电压是否正常&#xff0c;确保电压在规定的范围内&#xff0c;如常见的5V。 2.复位检查。检查复位引脚的电压是否正常&#xff0c;在单片机接通电源时&#xff0c;复位引脚通常会有一个高电平&#xff0c;按下复位按钮时&#xff0c;复位…

android studio更改应用图片,和应用名字。

更改应用图标&#xff0c;和名字 先打开AndroidManifest.xml文件。 更改图片文件名字&#xff08; 右键-->构建-->重命名&#xff08;R&#xff09;&#xff09;

kali设置中文输入法

目录 下载 使用 下载 打开终端输入 sudo apt-get install ibus ibus-pinyin 点击y即可 使用 桌面右上角这里可以选择中文输入法 效果如下