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

实验77_队列发送到前端vs后端.docx

更新时间:2026-09-13 12:06:15 大小:38K 上传用户:烟雨查看TA发布的资源 标签:FreeRTOSQueuexQueueSendToFrontxQueueSendToBackEmbedded 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

实验 77:队列发送到前端 vs 后端

实验说明

实验概述

FreeRTOS 的队列支持两种发送方式:xQueueSendToBack()(默认,发送到队列尾部)和 xQueueSendToFront()(发送到队列头部)。xQueueSend() 等同于 xQueueSendToBack()。发送到前端可以使高优先级消息被优先处理,实现消息优先级功能。

实验原理

队列的内部实现是一个环形缓冲区,xQueueSendToBack() 将数据写入写指针位置,写指针后移;xQueueSendToFront() 将数据写入读指针的前一个位置,读指针前移。这样,从队列头部读取时,后发送到前端的数据会先被读取。

实验现象

普通消息发送到后端,紧急消息发送到前端,接收任务始终按"紧急消息优先"的顺序处理。

完整代码

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

typedef struct
{
    uint8_t  priority;  /* 0:普通, 1:紧急 */
    uint32_t id;
    char     text[16];
} Message_t;

QueueHandle_t xMsgQueue = NULL;

/* 普通消息发送任务 */
static void vNormalSenderTask(void *pvParameters)


部分文件列表

文件名 大小
实验77_队列发送到前端vs后端.docx 38K

全部评论(0)

暂无评论

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

  • 打赏
  • 30日榜单

推荐下载