一、动态创建消息队列
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.