Serial.availableForWrite против Serial.flush

Есть ли разница между следующими двумя строковыми кодами?

пока (Serial.availableForWrite <= 0) {}

по сравнению с

Serial.flush()

Спасибо!

, 👍0


2 ответа


Лучший ответ:

4

Линия

while (Serial.availableForWrite() <= 0) {}

ждет, пока буфер последовательного вывода не переполнится. В то время как

Serial.flush();

ждет, пока буфер последовательного вывода опустеет.

,

2

https://www.arduino.cc/reference/en/language/ функции/связь/серийный/доступный для записи/

availableForWrite Получить количество байтов (символов), доступных для записи в последовательный буфер, без блокировки операции записи

Операции записи в потоки Arduino ждут, если они не могут записать данные для вывода. Вы можете использовать количество, возвращаемое availableForWrite, чтобы избежать этой блокировки.

https://www.arduino.cc/reference/en/language/ функции/связь/последовательный/флэш/

flush Ожидает завершения передачи исходящих последовательных данных.

Одним из вариантов использования flush() является ожидание отправки данных перед переводом MCU в спящий режим.

,