FreeRTOS 队列常用API函数

本文详细介绍了FreeRTOS操作系统中的队列操作,包括队列创建、消息发送与接收的方法及函数参数说明。队列创建使用xQueueCreate宏,消息发送通过xQueueSend系列函数实现,而xQueueReceive和xQueuePeek则用于读取消息。

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

队列创建xQueueCreate,此宏最终调用函数xQueueGenericCreate()
QueueHandle_t   xQueueCreate( UBaseType_t   uxQueueLength,//要创建的队列的队列长度,这里是队列的项目数
			      UBaseType_t     uxItemSize )//队列中每个项目(消息)的长度,单位为字节


向队列发送消息xQueueSend     xQueueSendToBack       xQueueSendToFront  
这三个函数最后调用的是同一个函数xQueueGenericSend()
BaseType_t 	xQueueSend(QueueHandle_t xQueue,    //队列句柄	
			  const void* pvItemToQueue,//指向要发送的消息
			  TickType_t xTicksToWait); //阻塞时间.值为0队列满时立即返回
						    //值为portMAX_DELAY 死等,但是宏																//INCLUDE_VTaskSuspend必须为1
						   //在FreeRTOSConfig.h文件130行
返回值:
pdPASS:向队列发送消息成功
errQUEUE_FULL	队列已满了,消息发送失败

从队列读取消息xQueueReceive(),读取成功后会把队列中的这条数据删除
BaseType_t xQueueReceive(QueueHandle_t 	xQueue  	//队列句柄
			void* 		pvBuffer	//保存数据的缓冲区
			TickType_t 	xTicksToWait);	//阻塞时间
返回值:
pcTRUE:		从队列中读取数据成功
pdFALSE:		从队列中读取数据失败

从队列读取消息xQueuePeek(),读取成功后不会将消息删除参数和xQueueReceive相同


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值