物联网消息队列函数应用

物联网消息队列函数应用:
一,功能需求:
1,使用消息队列检测串口输入
2,通过串口发送字符串openled6,openled7,openled8,openled9,分别打开led6,led7,led8,led9
3,通过串口发送字符串closeled6,closeled7,closeled8,closeled9,分别关闭板载led6,led7,led8,led9.

二,函数接口:
QueueHandled_t xQueueCreate(UBaseType_t uxQueueLength,UBaseType_t uxltemSize);

功能概述:创建一个消息队列,并返回消息队列句柄

参数:(1)队列一次可容纳消息的最大长度。
(2)队列中每一个消息体大小

返回值:NULL—创建失败
Any other value:创建成功,返回消息队列句柄

注意事项:队列可以用于任务与任务之间的通信,也可以用于中断于任务之间的通信,可在调度器开启之间,创建消息队列。

BaseType_t xQueueSend/xQueueSendFront(QueueHandle_t xQueue,const void *pvltemToQueue,TickType_t TicksToWait);

功能概述:在任务中往队列中传入消息
xQueueSend入到对尾
xQueueSendFront入到对头

参数:(1)消息队列句柄
(2)要发送的消息地址
(3)阻塞等待时间

返回值:pdPASS:发送成功
errQUEUE_FULL:队列已经满了,发送失败。

BaseType_t xQueueSendFromISR/xQueueSendToFrontFromISR(QueueHandle_t xQueue,const void *pvltemToQueue,NULL)

功能概述:在中断中消息队列中传入消息。
xQueueSendToFrontFromISR入到对头

参数:(1)消息队列句柄
(2)要发送的消息地址
(3)NULL

返回值:pdTRUE:发送成功
errQUEUE_FULL: 队列已经满,发送失败

注意事项:调用此函数,会触发上下文切换(当前被中断的任务)
优先级低于解除阻塞的任务
在启动调度器之前不能调用此函数

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

功能概述:在任务中读取消息队列消息

参数:(1)消息队列句柄
(2)接收消息的缓冲区
(3)阻塞等待时间

返回值:pdPASS :创建失败
errQUEUE_EMPTY:消息队列为空

BaseType_t xQueueReceiveFromISR(QueueHandle_t xQueue,void *pvBuffer,NULL);

功能概述:在中断中读取消息队列消息

参数:(1)消息队列句柄
(2)接收消息的缓冲区
(3)NULL

返回值:pdPASS :创建失败
pdFAIL:消息队列为空

注意事项:调用此函数,会触发上下文切换(当前被中断任务优先级低于解除阻塞的任务)
在启动调度器之前不能调用此函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值