Обработка переполнения буфера
Обработка переполнения буфера RX
Событие on_ser_overrun генерируется при переполнении буфера приёма (RX). Это значит, что данные поступали в UART быстрее, чем вы их обрабатывали, и часть данных потеряна.
Событие генерируется только один раз, сколько бы данных ни было потеряно. Новое событие будет сгенерировано только после выхода из обработчика предыдущего. В режиме UART/полный дуплекс (подробнее см. Режим UART) этого, как правило, можно избежать с помощью управления потоком (ser.flowcontrol).
Обычно пользователю вашей системы нужно знать, что произошло переполнение. Например, при этом можно мигать красным светодиодом.
sub on_ser_overrun
pat.play("R-R-R-R")
end sub
Возможно ли переполнение буфера TX?
Переполнение буфера передачи (TX) невозможно. Последовательный порт не позволит перегрузить свой буфер передачи (TX). Если вы попытаетесь добавить в буфер передачи (TX) больше данных, чем позволяет свободное место, добавляемые данные будут усечены.
О том, как правильно отправлять данные, см. Отправка данных.