【FreeRTOS】小白进阶之如何使用FreeRTOS消息队列发送和接收数据(二)

本文详细介绍了在FreeRTOS中如何创建并使用消息队列进行数据发送和接收任务。通过实例展示了任务定义、队列创建以及发送和接收任务的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建两个发送队列数据任务和一个接收队列数据任务。

1、头文件声明和任务定义

#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "supporting_functions.h"

static void vSenderTask( void *pvParameters );
static void vReceiverTask( void *pvParameters );

// 创建队列变量
QueueHandle_t xQueue;

typedef enum
{
	eSender1,
	eSender2
} DataSource_t;

// 数据结构
typedef struct
{
	uint8_t ucValue;
	DataSource_t eDataSource;
} Data_t;

// 要发送的队列数据
static const Data_t xStructsToSend[ 2 ] =
{
	{ 100, eSender1 },
	{ 200, eSender2 }
};

2、创建任务

int main( void )
{
    xQueue = xQueueCreate( 3, sizeof( Data_t ) );

	if( xQueue != NULL )
	{
		xTaskCreate( vSenderTask, "Sender1", 1000, ( void * ) &( xStructsToSend[ 0 ] ), 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

产品人卫朋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值