推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

实验45_队列窥探_xQueuePeek.docx

更新时间:2026-09-13 11:58:19 大小:38K 上传用户:烟雨查看TA发布的资源 标签:FreeRTOSxQueuePeek队列窥探阻塞等待数据预览 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

实验 45:队列窥探 — xQueuePeek

实验说明

实验概述

在某些场景中,任务需要查看队列中的数据但不移除它。例如,一个"预览"任务需要检查队列中是否有紧急数据,但决定是否由自己处理还是留给其他任务。FreeRTOS 提供了 xQueuePeek() 函数,它从队列中复制数据但不移除数据,与 xQueueReceive() 不同,后者会从队列中移除数据。

实验原理

xQueuePeek() 的行为与 xQueueReceive() 类似,支持阻塞等待,但读取数据后不会将其从队列中移除。因此,如果多个任务同时调用 xQueuePeek() 查看同一个队列,它们都会获取到相同的数据。队列中数据的实际移除只能通过 xQueueReceive() 完成。

关键知识点

1. xQueuePeek() 复制数据但不移除。

2. 支持阻塞等待,与 xQueueReceive() 行为类似。

3. 适合"预览"场景,多个任务可同时查看相同数据。

实验现象

发送任务发送数据,窥探任务查看数据但不移除,接收任务随后接收数据,验证窥探操作不影响数据。

完整代码

  c
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include <stdio.h>

QueueHandle_t xQueue = NULL;


部分文件列表

文件名 大小
实验45_队列窥探_xQueuePeek.docx 38K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载