pxStaticQueue:这是指向StaticQueue_t类型的静态队列结构的指针。StaticQueue_t是FreeRTOS内部用于管理静态队列的数据结构。 函数返回值: 如果队列创建成功,将返回一个有效的队列句柄(QueueHandle_t类型)。 如果队列创建失败,返回值将为NULL。 使用示例: xStaticQueue_txQueueBuffer;StaticQueue_t xStaticQueue;QueueHan...
#include "FreeRTOS.h" #include "queue.h" uint8_t ucQueueStorage[100]; // 预分配的存储空间 StaticQueue_t xStaticQueue; // 静态队列控制块 QueueHandle_t xQueue; int main(void) { xQueue = xQueueGenericCreateStatic(5, sizeof(int32_t), ucQueueStorage, &xStaticQueue, 0); if(xQueue ...
QueueHandle_t xQueueGenericCreateStatic(const UBaseType_t uxQueueLength,//要创建的队列长度(队列的项目数) const UBaseType_t uxItemSize,//队列项(消息)的长度(字节) uint8_t *pucQueueStorage,//指向队列项的存储区 StaticQueue_t *pxStaticQueue,//用来保存队列结构体 const uint8_t ucQueueType);...
pxQueueBuffer 必须执行一个StaticQueue_t结构体,用来保存队列的数据结构 返回值 非0:成功,返回句柄,以后使用句柄来操作队列 NULL:失败,因为pxQueueBuffer为NULL 7.xQueueReset(); 作用:队列刚被创建时,里面没有数据;使用过程中可以调用 xQueueReset() 把队列恢复为初始状态 函数原型:BaseType_t xQueueReset( Qu...
必须执行一个StaticQueue_t结构体,用来保存队列的数据结构 返回值 非0:成功,返回句柄,以后使用句柄来操作队列NULL:失败,因为pxQueueBuffer为NULL 示例代码: 代码语言:javascript 复制 // 示例代码 #define QUEUE_LENGTH 10 #define ITEM_SIZE sizeof( uint32_t ) // xQueueBuffer用来保存队列结构体 StaticQueue_...
StaticQueue_t *pxQueueBuffer ); 参数 说明 uxQueueLength 队列长度,最多能存放多少个数据(item) uxItemSize 每个数据(item)的大小:以字节为单位 pucQueueStorageBuffer 如果uxItemSize 非 0,pucQueueStorageBuffer 必须 指向一个 uint8_t 数组, 此数组大小至少为"uxQueueLength * uxItemSize" pxQueueBuffer ...
StaticQueue_t *pxQueueBuffer );功能:用于创建一个新的队列。参数:uxQueueLength: 队列能够存储的最大单元数目,即队列深度。uxItemSize: 队列中数据单元的长度,以字节为单位。pucQueueStorageBuffer :指针,指向一个 uint8_t 类型的数组,数组的大小至少有uxQueueLength* uxItemSize 个字节。当 uxItemSize ...
pxQueueBuffer: 此参数指向一个 StaticQueue_t 类型的变量,用来保存队列结构体。 返回值: NULL: 队列创建失败。 其他值:创建成功的队列返回的队列句柄。 2.2.2 向队列发送消息 队列创建好以后便可以向其中发送消息,FreeRTOS提供的向队列中发送消息的API函数有8个,分别如下: ...
StaticQueue_t *pxQueueBuffer); /*example:创建一个深度为5,队列单元占uint16_t大小队列*/ QueueHandle_t QueueHandleTest; QueueHandleTest = xQueueCreate(5, sizeof(uint16_t)); 3.3、向队列写入数据 任务或者中断向队列写入数据称为发送消息。通常情况下,队列被作为 FIFO(先入先出)使用,即数据由队列尾...
有一个结构体用于描述队列,叫做 Queue_t,这个结构体在文件 queue.c 中定义。 3、队列创建 在使用队列之前必须先创建队列,有两种创建队列的方法,一种是静态的,使用函数xQueueCreateStatic();另一个是动态的,使用函数 xQueueCreate()。这两个函数本质上都是宏,真正完成队列创建的函数是 xQueueGenericCreate()和 ...