队列(queue)

队列的特性

队列环形缓冲区buf
等待发送数据链表list
等待接收数据链表list
如何唤醒? 唤醒最高优先级的任务,同优先级下唤醒等待时间最长的数据

1、创建队列

QueueHandle_t xQueueCreate( UBaseType_t uxQueueLength, UBaseType_t uxItemSize);

创建队列

2、写队列

将数据写往队尾

/*
* 往队列尾部写入数据,如果没有空间,阻塞时间为 xTicksToWait
*/
BaseType_t xQueueSend(
				QueueHandle_t xQueue,
				const void *pvItemToQueue,
				TickType_t xTicksToWait
				);
/*

将数据写向队尾将数据写往队头

/*
* 往队列头部写入数据,如果没有空间,阻塞时间为 xTicksToWait
*/
BaseType_t xQueueSendToFront(
					QueueHandle_t xQueue,
					const void *pvItemToQueue,
					TickType_t xTicksToWait
					);
/*

将数据写往队头

3、读数据

BaseType_t xQueueReceive(QueueHandle_t xQueue,
						void * const pvBuffer,
						TickType_t xTicksToWait );

读队列

4、队列集(Queue Set)

作用:监控多个队列数据

  • 要监测3个队列A、B、C,队列集的长度是:队列A的长度+队列B的长度+队列C的长度
  • 建立联系:队列集跟3个队列建立联系,队列某个成员指向队列集
  • 数据放置入队列中,同时handle也放入在队列集
  • 读队列集(read queue set)
  • 读队列队列集
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值