FreeRTOS 队列使用

本文介绍了FreeRTOS中的队列使用,包括队列的基本概念、特性、创建方法、数据写入与读出,以及如何查询队列状态。通过示例展示了如何创建队列、向队列写入和读取数据,强调了队列在任务间通信中的作用和FIFO原则。

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

FreeRTOS 队列使用

队列简介

队列是一种线性表,只能在一端插入数据,而另一端删除数据,最明显的特性就是FIFO,先进先出,跟堆栈这种先进后出的数据结构不太一样。

FreeRTOS队列特性

对FreeRTOS来说,队列是一种很基本数据结构,其中计数信号量,二值信号量等都是利用队列来做的;在FreeRTOS中,队列用于任务与任务之间,任务与中断服务子程序之间的数据传输,其作用类似于裸机编程时使用的全局变量,与全局变量不同的是,队列有阻塞超时时间;任务之间使用队列要遵循FIFO的特性,下面这个图就形象的表达了这个特性:

队列创建

使用队列前要先创建,创建队列使用API函数
xQueueCreate( uxQueueLength, uxItemSize )
参数说明:

uxQueueLength:表示队列的深度,说明该队列能够存储多少单元数据;

uxItemSize:表示队列中数据单元的长度,以字节为单位;

返回值:如果创建成功则返回队列的句柄,如果返回NULL,则表示没有足够的堆空间来分配,队列创建失败;
举个小例子:

QueueHandle_t xQueue;

    int main(void)
    {
        xQueue = xQueueCreate(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值