三MessageBuffer 消息缓冲区 消息缓冲区是在流式缓冲区的基础上实现的,其进一步针对“消息”进行设计改进。MessageBuffer每一条消息的写入增加了一个字节用来表示该条消息的长度。读取时需要一次性读出至少一条消息,否则会返回 代码语言:javascript 复制 MessageBufferHandle_txMessageBufferCreate(size_t xBufferSizeBytes)...
三MessageBuffer 消息缓冲区 消息缓冲区是在流式缓冲区的基础上实现的,其进一步针对“消息”进行设计改进。MessageBuffer每一条消息的写入增加了一个字节用来表示该条消息的长度。读取时需要一次性读出至少一条消息,否则会返回 MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes );size_t xMessageB...
MessageBuffer每一条消息的写入增加了一个字节用来表示该条消息的长度。读取时需要一次性读出至少一条消息,否则会返回 MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes ); size_t xMessageBufferSend( MessageBufferHandle_t xMessageBuffer, const void *pvTxData, size_t xDataLengthBytes, Ti...
pxQueueBuffer 必须执行一个StaticQueue_t结构体,用来保存队列的数据结构 返回值 非0:成功,返回句柄,以后使用句柄来操作队列NULL:失败,因为pxQueueBuffer为NULL 示例代码: 代码语言:javascript 复制 // 示例代码 #define QUEUE_LENGTH 10 #define ITEM_SIZE sizeof( uint32_t ) // xQueueBuffer用来保存队列结构体...
函数xQueueCreate 用于创建消息队列。 第1 个参数是消息队列支持的消息个数。 第2 个参数是每个消息的大小, 单位字节。 返回值,如果创建成功会返回消息队列的句柄,如果由于 FreeRTOSConfig.h 文件中 heap 大小不足, 无法为此消息队列提供所需的空间会返回 NULL。
BaseType_t xQueueReceive( QueueHandle_t xQueue,void*constpvBuffer, TickType_t xTicksToWait ); 它有3个入参和一个返回值: xQueue:队列创建时候的句柄,用于表示向哪个队列写入数据; pvBuffer:从队列读出来的数据指针; xTicksToWait:如果队列为空,则为阻塞的最大时间;当被设置为 0 的时候,不阻塞,如果队...
1.12.3 xQueuePeek 1.1 队列的结构体 队列的写指针。 队列的读指针 挂载等待发送队列的任务节点的链表。当向队列写入数据的时候,队列中没有多余的空间,这个任务就会放到这个链表中,当队列中有空闲的空间时,就会从该链表取出任务节点,将等待发送的任务移到就绪链表中。 等待接收队列的任务节点。当向队列读取数据的时...
StaticQueue_t *pxQueueBuffer); /*example:创建一个深度为5,队列单元占uint16_t大小队列*/ QueueHandle_t QueueHandleTest; QueueHandleTest = xQueueCreate(5, sizeof(uint16_t)); 3.3、向队列写入数据 任务或者中断向队列写入数据称为发送消息。通常情况下,队列被作为 FIFO(先入先出)使用,即数据由队列尾...
xQueueHandle xQueue:目标队列的句柄。 const void * pvBuffer:用于存放读取到的队列元素的缓冲区,队列将把出队的元素拷贝到此缓冲区中。 portTickType xTicksToWait:参见xQueueSendToBack()函数的解释。 返回值: pdPASS,当成功从队列读取到元素时返回pdPASS。例如,在限定超时时间(xTicksToWait非0)过期前,成功读取...
QueueHandle_t xQueue, // 队列句柄 void * pvBuffer, // 指向存储读取消息的缓冲区的指针 TickType_t xTicksToWait // 最大阻塞时间 ); 如果读取成功,则返回`pdPASS`;如果队列为空并且等待超时,则返回`errQUEUE_EMPTY`。 示例: QueueHandle_t xQueue; // 假设这是之前已经创建的消息队列句柄 ...