FreeRTOS学习——FreeRTOS队列(下)之队列创建

本篇文章记录我学习FreeRTOS队列创建的知识。主要分享队列创建需要使用的初始化函数、队列复位函数。

需要进一步了解FreeRTOS队列的相关知识,读者可以参考以下文章:

FreeRTOS学习------FreeRTOS队列(上)_freertos 单元素队列-CSDN博客

FreeRTOS学习------FreeR TOS队列------队列创建(中)-CSDN博客

一、队列初始化函数

队列初始化函数prvInitialiseNewQueue()用于队列的初始化,此函数在文件queue.c中有定义,函数代码如下:

(1)、队列结构体中的成员变量pcHead指向队列存储区中首地址。
(2)、初始化队列结构体中的成员变量****uxQueueLength和uxItemSize,这两个成员变量保存队列的最大队列项目和每个队列项大小。

(3)、调用函数xQueueGenericReset()复位队列。PS:发一句牢骚,绕来绕去的,函数调了一个又一个的。

二、队列复位函数

队列初始化函数 prvInitialiseNewQueue()中调用了函数xQueueGenericReset()来复位队列,函数xQueueGenericReset()代码如下:

(1)、初始化队列中的相关成员变量。
(2)、根据参数xNewQueue确定要复位的队列是否是新创建的队列,如果不是的话还需要做其他的处理
(3)、初始化队列中的列表xTasksWaitingToSend和 xTasksWaitingToReceive。

至此,队列创建成功,比如我们创建一个有4个队列项,每个队列项长度为32个字节的队列TestQueue,创建成功的队列如下:

相关推荐
水云桐程序员20 小时前
LED电路的设计原理
单片机·嵌入式硬件
charlie11451419120 小时前
嵌入式现代C++教程实战篇第12篇:C宏时代的LED驱动 —— 能跑但不优雅
c语言·c++·stm32·单片机·嵌入式硬件·c
西城微科方案开发20 小时前
八电极AC体脂秤单片机BH66F2660-B LQFP48
单片机
cici1587420 小时前
51单片机实时温度监测系统(DS18B20 + LCD1602)
单片机·嵌入式硬件·51单片机
beleadsensors21 小时前
模数转换ADC(上):模数转换(ADC)核心原理与关键概念
单片机·嵌入式硬件·硬件架构·硬件工程·pcb工艺
The Shio21 小时前
上位机对接设备协议踩坑指南
网络·单片机·嵌入式硬件·物联网·c#·.net
守护安静星空21 小时前
esp32开发笔记-wifi网络
网络·笔记·vscode·单片机·tcp/ip
发发就是发21 小时前
资源管理:I/O端口与内存映射
linux·服务器·驱动开发·单片机·嵌入式硬件·fpga开发
不知秋8801 天前
PEAK PCAN 设备常见报错与故障排查大全
单片机·嵌入式硬件·can·plc·codesys·peak
诺狞猫1 天前
ozone 调试SFLB52_NOR
单片机