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

相关推荐
叁散4 分钟前
实验项目1 RFID 标签实验
单片机·嵌入式硬件
比奇堡派星星3 小时前
MCU 裸机时间片调度系统
单片机·嵌入式硬件
深圳市方中禾科技6 小时前
LED驱动芯片FZH02,应用开发相关数据技术手册
单片机·嵌入式硬件·led
yuanmenghao7 小时前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信
Arciab9 小时前
51单片机_蜂鸣器
单片机·嵌入式硬件·51单片机
SmartRadio10 小时前
在CH585M代码中如何精细化配置PMU(电源管理单元)和RAM保留
linux·c语言·开发语言·人工智能·单片机·嵌入式硬件·lora
不脱发的程序猿10 小时前
嵌入式开发中C++内存泄漏的场景与解决办法
单片机·嵌入式硬件·嵌入式
至为芯10 小时前
IP5326至为芯支持TYPE-C协议的2.4A充放电移动电源方案芯片
单片机·嵌入式硬件
小何code10 小时前
STM32入门教程,第10课(下),Keil调试模式
stm32·单片机·嵌入式硬件
SmartRadio10 小时前
进一步优化CH585M的低功耗模式
c语言·开发语言·单片机·嵌入式硬件·物联网