Serial.flush() уточнение
- Войдите на сайт для отправки комментариев
Пнд, 19/02/2018 - 20:23
В официальном мануале написано, что эта команда ожидания окончания отправки данных из буфера записи. Т.е. программа останавливается на этом месте в ожидании окончания процесса передачи? Только программа или прерывания по таймерам или внешние прерывания тоже в очередь становятся?
И ещё. Есть ли какой сакральный смысл в этой команде? Например, случаи когда она очень полезна. Хотелось бы узнать актуальность её в последних версиях, т.к. в том же официальном мануале сказано, что она раньше подчищала буфер.
Спасибо.
а вам надо ждать или чистить?
Если чистить - используйте Serial.read() в цикле или Serial.readString()
Мне хотелось бы знать зачем она вообще нужна на сегодняшний день.
Буфер чтения я опустошаю в цикле. По определённым условиям из данных отправляю ответы. Так вот и встал вопрос "А зачем она нужна"?
К принимаемым данным она не имеет никакого отношения.
Что касается отправляемых данных, то она дожидается пока ВСЁ не будет физически отправлено и ТХ буфер не станет пуст.
Для чего? ну, 100500 применений: борьба с переполнением буфера, начинать какое-то действие только после того, как другое устройство гарантировано получило наши данные и т.п.
Спасибо. Это то что нужно было узнать.