freertos之队列

队列的创建

队列的创建有两种方法:动态分配内存、静态分配内存,
动态分配内存:xQueueCreate,队列的内存在函数内部动态分配

动态创建:
在这里插入图片描述
静态创建:
在这里插入图片描述
静态创建的示例代码:
在这里插入图片描述

对队列进行操作的相关函数

复位

在这里插入图片描述

删除

在这里插入图片描述

写队列

写到尾部

这两个函数是等同的,都是从在任务里写,第三个是在中断里写
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

写到头部

在这里插入图片描述

写队列的参数说明

在这里插入图片描述

读队列

使用 xQueueReceive() 函数读队列,读到一个数据后,队列中该数据会被移除。这个函数有两个版本:在任务中使用、在ISR中使用。函数原型如下:
在这里插入图片描述

参数说明

在这里插入图片描述

查询

可以查询队列中有多少个数据、有多少空余空间。函数原型如下:
在这里插入图片描述

覆盖

当队列长度为1时,可以使用 xQueueOverwrite() xQueueOverwriteFromISR() 来覆盖数据。注意,队列长度必须为1。当队列满时,这些函数会覆盖里面的数据,这也以为着这些函数不会被阻塞。
在这里插入图片描述

偷看

如果想让队列中的数据供多方读取,也就是说读取时不要移除数据,要留给后来人。那么可以使用"窥视",也就是 xQueuePeek() 或 xQueuePeekFromISR() 。这些函数会从队列中复制出数据,但是不移除数据。这也意味着,如果队列中没有数据,那么"偷看"时会导致阻塞;一旦队列中有数据,以后每次"偷看"都会成功。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值