本帖最后由 会飞的猪_2020 于 2024-11-13 09:00 编辑
定义两个消息队列
要同步的话定义个互斥量就行了。
数据没有被消费完的话,不允许传输。
[C] 纯文本查看 复制代码 void broadcast_message(account_event_param_t *param)
{
// 尝试获取互斥量,防止数据竞争
if (xSemaphoreTake(message_mutex, portMAX_DELAY) == pdPASS) {
// 向WiFi队列发送消息
if (xQueueSend(wifi_message_queue, param, portMAX_DELAY) != pdPASS) {
log_e("Failed to send message to WiFi queue");
}
// 向串口队列发送消息
if (xQueueSend(serial_message_queue, param, portMAX_DELAY) != pdPASS) {
log_e("Failed to send message to Serial queue");
}
// 释放互斥量 这个代码放在你确认你的数据被消费完的地方。
//xSemaphoreGive(message_mutex);
} else {
log_e("Failed to take message mutex");
}
}
|