[an error occurred while processing this directive]
|
Я обычно обмнен по уарту делаю так - самый низ стандартная конструкция кольцевого буфера. Эту схему я взял у атмела и пользую на всех платформах. Верхний уровень - автомат, который периодически вызывает функцию приема строки и загона нужных данных в буфер сборки пакета. В функции контролируется таймаут, счетчик и инные признаки окончания приема. При сработке любого условия фукция возвращает вызывателю результат - успешно принят или проблемы. Автомат так-же может контролировать команды основной проги по передачи пакета и инные команды. Таким образом надо кольцевой буфер уарта на прием и передачу и два буфера на сборку приема и передачи пакетов. Протокол люблю wake.