У меня есть задача ADC, которая использует 4 канала и использует DMA для передачи. У меня также есть потоковый клиент, который передает данные ADC через сокет TCP. Я сделал задачу ADS более низким приоритетом, чем потоковый клиент.
Я посылаю целое число, которое выбирает, какой канал АЦП выбран в качестве очереди сообщений для потокового клиента.
Проблема в том, что я получаю переполнение очереди при отправке этого целого числа канала АЦП.
ADC TASK
if(bufferSelect != BUFFERS_NOT_READY)
{
if(xQueueSend(g_adcQueue, &bufferSelect, 0) != pdPASS)
{
throwError(ERROR_MESSAGE_QUEUE_FULL);
PRINTF("%s\r\n", getErrorMessage(ERROR_MESSAGE_QUEUE_FULL));
}
bufferSelect = BUFFERS_NOT_READY;
}
Потоковое задание клиента
/* obtain next buffer ready event */
if(xQueueReceive(g_adcQueue, &bufferSelect, 0) == pdFALSE)
{
g_stopStreaming = true;
continue;
}