以下是一个基于 ESP32 - S3 实现消息队列收发测试的 C 例程,该例程使用了 ESP - IDF(Espressif IoT Development Framework)。消息队列是 FreeRTOS 提供的一种机制,用于在不同任务之间传递数据。
代码实现
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
// 定义消息队列句柄
QueueHandle_t xQueue;
// 发送任务
void vSenderTask(void *pvParameters) {
int sendValue = 0;
while (1) {
// 向消息队列发送数据
if (xQueueSend(xQueue, &sendValue, portMAX_DELAY) == pdPASS) {
printf("Sent value: %d\n", sendValue);
}
sendValue++;
// 任务延时 1 秒
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
// 接收任务
void vReceiverTask(void *pvParameters) {
int receivedValue;
while (1) {
// 从消息队列接收数据
if (xQueueReceive(xQueue, &receivedValue, portMAX_DELAY) == pdPASS) {
printf("Received value: %d\n", receivedValue);
}
}
}
void app_main(void) {
// 创建消息队列,队列长度为 10,每个元素大小为 int 类型
xQueue = xQueueCreate(10

最低0.47元/天 解锁文章
1770

被折叠的 条评论
为什么被折叠?



