STM32_RTOS_V2编程模板1-消息队列
#pragma region QUEUE1
// 1DEFINE
osMessageQueueId_t queueDemo1 = NULL;
// 2INIT
queueDemo1 = osMessageQueueNew(8, sizeof(uint16_t), NULL);
// 3PUT
static uint16_t q_tx_sn = 0;
static uint16_t Demo1Val = 0;
extern osMessageQueueId_t queueDemo1;
Demo1Val = 0xAA;
if (osOK == osMessageQueuePut(queueDemo1, &Demo1Val, 0U, 0U)) {
test_rtt_printf(0, 0, "queueDemo1 PUT sn= %05d!\r\n", ++q_tx_sn);
}
// 4GET
static uint16_t q_rx_sn = 0;
static uint16_t Demo1Val = 0;
extern osMessageQueueId_t queueDemo1;
if (osOK == osMessageQueueGet(queueDemo1, &Demo1Val, NULL, 0U)) {
test_rtt_printf(0, 0, "queueDemo1 GOT sn= %05d!\r\n", ++q_rx_sn);
if (Demo1Val == 0xAA) {
}
}
#pragma endregion
#pragma region QUEUE2
// 1TYPEDEF bsp.h or include.h
typedef struct {
uint16_t len;
uint8_t buf[64];
} MSG_S;
// 2DEFINE
osMessageQueueId_t queueDemo2 = NULL;
// 3INIT
queueDemo2 = osMessageQueueNew(8, sizeof(MSG_S*), NULL);
// 4PUT
static uint16_t q_tx_sn = 0;
static MSG_S v_g_tmsg;
static MSG_S* p_g_tmsg = &v_g_tmsg;
extern osMessageQueueId_t queueDemo2;
p_g_tmsg->len = 0x10;
memcpy(p_g_tmsg->buf, staBuf, p_g_tmsg->len);
if (osOK == osMessageQueuePut(queueDemo2, &p_g_tmsg, NULL, 0)) {
test_rtt_printf(0, 0, "queueDemo2 tx len= %04d sn= %05d!\r\n", p_g_tmsg->len, ++q_tx_sn);
}
// 5GET
static uint16_t q_rx_sn = 0;
static MSG_S v_g_rmsg;
static MSG_S* p_g_rmsg = &v_g_rmsg;
extern osMessageQueueId_t queueDemo2;
if (osOK == osMessageQueueGet(queueDemo2, &p_g_rmsg, NULL, 0U)) {
test_rtt_printf(0, 0, "queueDemo2 rx len= %04d sn= %05d!\r\n", p_g_rmsg->len, ++q_rx_sn);
}
#pragma endregion
STM32_RTOS_V2编程模板1-消息队列的更多相关文章
- UNIX环境高级编程——system V消息队列
unix早期通信机制中的信号能够传送的信息量有限,管道则只能传送无格式字节流,这远远是不够的. 消息队列(也叫报文队列)客服了这些缺点: 消息队列就是一个消息的链表. 可以把消 ...
- Linux网络编程学习(九) ----- 消息队列(第四章)
1.System V IPC System V中引入的几种新的进程间通信方式,消息队列,信号量和共享内存,统称为System V IPC,其具体实例在内核中是以对象的形式出现的,称为IPC 对象,每个 ...
- linux c编程:Posix消息队列
Posix消息队列可以认为是一个消息链表. 有足够写权限的线程可以往队列中放置消息, 有足够读权限的线程可以从队列中取走消息 在某个进程往一个队列写入消息前, 并不需要另外某个进程在该队列上等待消息的 ...
- UNIX网络编程5 POSIX 消息队列
<mqueue.h> mq_open mq_close mq_unlink mq_getattr/mq_setattr mq_send/mq_receive mq_notify sigwa ...
- 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)
RT,使用消息队列,信号量和命名管道实现的多人群聊系统. 本学期Linux.unix网络编程的第三个作业. 先上实验要求: 实验三 多进程服务器 [实验目的] 1.熟练掌握进程的创建与终止方法: 2 ...
- Linux 消息队列编程
消息队列.信号量以及共享内存被称作 XSI IPC,它们均来自system V的IPC功能,因此具有许多共性. 键和标识符: 内核中的每一种IPC结构(比如信号量.消息队列.共享内存)都用一个非负整数 ...
- Python并发编程之消息队列补充及如何创建线程池(六)
大家好,并发编程 进入第六篇. 在第四章,讲消息通信时,我们学到了Queue消息队列的一些基本使用.昨天我在准备如何创建线程池这一章节的时候,发现对Queue消息队列的讲解有一些遗漏的知识点,而这些知 ...
- Java编程的逻辑 (61) - 内存映射文件及其应用 - 实现一个简单的消息队列
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- Java并发编程原理与实战三十六:阻塞队列&消息队列
一.阻塞队列 1.阻塞队列BlockingQueue ---->可以理解成生产者消费者的模式---->消费者要等待到生产者生产出来产品.---->而非阻塞队列ConcurrentLi ...
- 【网络编程基础】Linux下进程通信方式(共享内存,管道,消息队列,Socket)
在网络课程中,有讲到Socket编程,对于tcp讲解的环节,为了加深理解,自己写了Linux下进程Socket通信,在学习的过程中,又接触到了其它的几种方式.记录一下. 管道通信(匿名,有名) 管道通 ...
随机推荐
- java基础知识回顾之java Socket学习
UDP传输:面向无连接的协议,不可靠,只是把应用程序传给IP层的数据报包发送出去,不保证发送出去的数据报包能到达目的地.不用再客户端和服务器端建立连接,没有超时重发等机制,传输速度快是它的优点.就像寄 ...
- redis安装、多实例和配置、及服务器性能优化
同一台服务器部署不同应用或者同一应用部署不同环境,需要redis服务多开防止数据冲突问题. 一.安装redis 需要安装gcc编译工具 yum install gcc -y 源码安装默认Redis程序 ...
- pkill 踢出某个终端
是ps命令和kill命令的结合,按照进程名来杀死指定进程 选项 -o:仅向找到的最小(起始)进程号发送信号: -n:仅向找到的最大(结束)进程号发送信号: -P:指定父进程号发送信号: -g:指定进程 ...
- Q: 远程ssh登录不上
1.密码没有问题 .2.防火墙没有禁用端口.3.ssh服务已安装且开启一般是ssh配置文件问题打开ssh配置文件 vim /etc/ssh/sshd_config ################## ...
- el-radio-group初始化默认值后点击无法切换问题/vue中设置表单对象属性页面不同步问题
<el-radio-group v-model="ruleForm.type"> <el-radio :label="1">方案一< ...
- SpringBoot中使用Netty实现TCP通讯,服务器主动向客户端发送数据
简述: Springboot项目的web服务后台,web服务运行在9100端口. 后台使用netty实现了TCP服务,运行在8000端口. 启动截图如下: pom依赖 <dependency ...
- nginx: [error] open() “/usr/local/var/run/nginx.pid” failed (2: No such file or directory)
- C# Lambda || Linq 效率问题
255条数据 static void Main() { List<IPEndPoint> list = new List<IPEndPoint>(); for (int i = ...
- JavaUtils - [03] 代码生成器(旧)
题记部分 001 || 引入依赖 <!-- Code Generator --> <dependency> <groupId>com.baomidou</gr ...
- Ubuntu 22.04 添加 AppImage 到应用程序
前言 AppImage 逐渐成为 Linux 常用的一种软件包格式,本文将介绍如何将 AppImage 文件添加到 Ubuntu 的应用程序中. 如下图中的 CAJViewer : 操作过程 设置相关 ...