嵌入式技术论坛
直播中

hsdou月半

8年用户 485经验值
擅长:MEMS/传感技术
私信 关注
[资料]

FreeRTOS消息队列和RT-Thread消息队列的使用注意事项介绍

一、FreeRTOS消息队列
1.1 创建消息队列
xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, // 队列消息最大个数
                          unsigned portBASE_TYPE uxItemSize ); // 单个消息最大字节
uxQueueLength  队列能够存储的最大单元数目,即队列深度。
    uxItemSize  队列中数据单元的长度,以字节为单位。
    返回值
        NULL 表示没有足够的堆空间分配给队列而导致创建失败。
        非 NULL 值表示队列创建成功。此返回值应当保存下来,以作为
        操作此队列的句柄。
1.2 发送消息
xQueueSendToBack()用于将数据发送到队列尾;
xQueueSendToFront()用于将数据发送到队列首。
xQueueSend() 完全等同于 xQueueSendToBack()。
portBASE_TYPE xQueueSendToFront(  xQueueHandle xQueue,  // 队列句柄
                                const void * pvItemToQueue, // 数据指针
                                porttickType xTicksToWait ); // 阻塞时间
portBASE_TYPE xQueueSendToBack( xQueueHandle xQueue,
                               const void * pvItemToQueue,
                               portTickType xTicksToWait );
切 记 不 要 在 中 断 服 务 例 程 中 调 用 xQueueSendToFront() 或 xQueueSendToBack()。系统提供中断安全版本的xQueueSendToFrontFromISR()与xQueueSendToBackFromISR() 用于在中断服务中实现相同的功能。
FreeRTOS和RT-Thread的消息队列.pdf (551.93 KB)
(下载次数: 0, 2022-5-25 15:31 上传)

原作者:早睡的叶子

更多回帖

发帖
×
20
完善资料,
赚取积分