Проблема с одновременной чтением-записью Serial

Нет ответов
mrPG
Offline
Зарегистрирован: 01.06.2016

Задача : читать данные с GPS-модуля(темп 1 Гц, 2-3 строки 15..45 символов) и отправлять на него команды(нерегулярно, 1 команда 30..40 символов).

MEGA2560, использую аппаратный Serial1, скорость 9600. Для чтения использую serialevent1(), внутри которого классический цикл while (Serial1.available());  для записи - Serial1.print().

При простом чтении никаких проблем нет - работает часами, т.е. бесконечно. Но как только подключаю запись(отправляю строку в тот же порт), то программа стабильно зависает, не завершив прием первой после передачи строки.

Очевидно, что имеет место коллизия несинхронизации передачи-приема через один и тот же порт.

Подскажите, как решить эту проблему.