Serial.availableForWrite против Serial.flush
Есть ли разница между следующими двумя строковыми кодами?
пока (Serial.availableForWrite <= 0) {}
по сравнению с
Serial.flush()
Спасибо!
@user135172, 👍0
2 ответа
Лучший ответ:
Линия
while (Serial.availableForWrite() <= 0) {}
ждет, пока буфер последовательного вывода не переполнится. В то время как
Serial.flush();
ждет, пока буфер последовательного вывода опустеет.
https://www.arduino.cc/reference/en/language/ функции/связь/серийный/доступный для записи/
availableForWrite
Получить количество байтов (символов), доступных для записи в последовательный буфер, без блокировки операции записи
Операции записи в потоки Arduino ждут, если они не могут записать данные для вывода. Вы можете использовать количество, возвращаемое availableForWrite
, чтобы избежать этой блокировки.
https://www.arduino.cc/reference/en/language/ функции/связь/последовательный/флэш/
flush
Ожидает завершения передачи исходящих последовательных данных.
Одним из вариантов использования flush()
является ожидание отправки данных перед переводом MCU в спящий режим.
- Ошибка 'Serial' was not declared in this scope
- Повреждение данных SoftwareSerial - поиск предложений
- Какой лучший способ объявить Serial при создании библиотеки Arduino?
- Термопринтер Adafruit печатает слабо
- Проблемы при использовании SoftwareSerial
- Найдите ОК или ОШИБКУ в последовательной строке
- HardwareSerial и SoftwareSerial несовместимы.
- Потерянные данные SoftwareSerial и HardwareSerial