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,创建成功的队列如下:

相关推荐
__万波__几秒前
STM32L475看门狗
stm32·单片机·嵌入式硬件
wanglong371317 分钟前
51单片机STC8G1K08输出PWM
单片机·嵌入式硬件·51单片机
时光找茬11 小时前
【瑞萨AI挑战赛-FPB-RA6E2】+ 从零开始:FPB-RA6E2 开箱测评与 e2 studio 环境配置
c++·单片机·边缘计算
@good_good_study12 小时前
FreeRTOS内存管理
单片机
Hello_Embed13 小时前
libmodbus 移植 STM32(基础篇)
笔记·stm32·单片机·学习·modbus
想放学的刺客17 小时前
单片机嵌入式试题(第27期)设计可移植、可配置的外设驱动框架的关键要点
c语言·stm32·单片机·嵌入式硬件·物联网
天昊吖17 小时前
stc8H启用DMA发送后 卡住【踩坑日志】
单片机
李永奉17 小时前
杰理芯片SDK开发-ENC双麦降噪配置/调试教程
人工智能·单片机·嵌入式硬件·物联网·语音识别
BackCatK Chen18 小时前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
兆龙电子单片机设计18 小时前
【STM32项目开源】STM32单片机多功能电子秤
stm32·单片机·开源·毕业设计·智能家居