FreeRTOS消息队列

一、动态创建消息队列

QueueHandle_t Message_Queue; //消息队列
#define MESSAGE_Q_NUM 1 //消息队列容量
#define Message_Queue_len 32 //单条数据大小

//´动态创建消息队列
Message_Queue=xQueueCreate(MESSAGE_Q_NUM,Message_Queue_len)

if(Message_Queue == NULL)
{
	printf("Create Queue Failed!\r\n");
}

二、入队

1.xQueueOverwrite函数,发送消息到队列,带覆写功能,当队列满后自动覆盖掉旧消息。注意,用此函数时,需要队列容量是1;源码有个判断如下:configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) );

2. xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) ,将消息插入到队列后面;

xQueue:句柄;
pvItemToQueue:消息内容;
xTicksToWait :0 时,当队列满时立即返回;当为portMAX_DELAY时一直等待,直到队列空闲。但宏INCLUDE_vTaskSuspend必须为1.

3.xQueueSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) 中断 函数中入队

二、出队

1.xQueueReceive( xQueue, pvBuffer, xTicksToWait )

2.BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken )中断 函数中出队

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值