FreeRTOSAPI函数详解----队列

本文主要介绍FreeRTOS函数的使用(动态方法),基本上加了static函数就是使用静态方法由于静态方法使用得比较少因此不做介绍

队列

传递任务与任务之间的,任务与中断之间不固定长度的消息

消息队列创建函数

xQueueCreate();

xQueueCreate( uxQueueLength uxItemSize, pucQueueStorage pxQueueBuffer )

参数

uxQueueLength --- >队列中能够存储最大消息单元数目,即队列长度

uxItemSize --- >队列中消息单元的大小,以字节为单位

返回值:

成功:返回队列句柄

失败:返回NULL,也许是创建队列需要的RAM无法分配成功

消息队列创建函数

void vQueueDelete()

参数

队列的句柄

无返回值

消息队列发送函数

xQueueSend()
xQeueSendToBack()
作用

向队列句尾发送消息

参数

xQueue--->队列句柄

pvItemToQueue--->指针指向发送到队列尾部的队列消息

xTicksToWait--->队列满时等待队列空闲的最大超时时间

xTicksToWait---->0---->不等待,如果队列满并且此值为零函数将直接返回

xTicksToWait---->0到portMAX_DELAY之间的值,如果指定时间为portMAX_DELAY任务将会挂起

返回值

成功:pdTRUE

失败:errQUEUE_FULL

xQueueSendToFront()

作用向句首发送消息,参考上面的函数

向消息队列发送消息函数(原型函数)

xQueueGenericSend()
参数

QueueHandle_t xQueue--->队列句柄

const void * const pvItemToQueue--->指向要发送的数据的指针

TickType_t xTicksToWait--->等待时间

const BaseType_t xCopyPosition--->发送位置

返回值

成功:pdTRUE

失败:errQUEUE_FULL

消息队列读取消息函数

xQueueReceive
xQueuePeek

接受完成后将把接受的消息从队列中删除

参数

xQueue--->队列句柄

pvBuffer--->指向接受到要保存的数据

xTicksToWait---->队列空时的等待时间

0至portMAX_DELAY之间的值

返回值

成功:pdTRUE

失败:pdFALSE

消息队列注意事项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值