Как установить время ожидания, например Serial.setTimeout() для Serial.read()?

Я прочитал форму комментариев здесь:

"Serial.setTimeout() устанавливает максимальное количество миллисекунд для ожидания последовательных данных при использовании Serial.readBytesUntil(), Serial.readBytes(), Serial.parseInt() или Serial.parseFloat(). По умолчанию оно равно 1000 миллисекунд. "

Согласно последней веб-странице,

"Последовательные функции, использующие значение времени ожидания, установленное с помощью Serial.setTimeout():

Serial.find()

Serial.findUntil()

Serial.parseInt()

Serial.parseFloat()

Serial.readBytes()

Serial.readBytesUntil()

Serial.readString()

Serial.readStringUntil()

"

Поэтому очевидно, что нет прямого указания установить тайм-аут для Serial.read().

Как установить время ожидания, например Serial.setTimeout(), для Serial.read()?

, 👍0


1 ответ


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

1

Вы не можете установить время ожидания для read(), но вы можете использовать readBytes() для чтения одного байта.

byte b;
int count = Serial.readBytes(&b, 1); // чтение одного байта с тайм-аутом
if (count) { // 0 или 1
  Serial.write(b); //эхо
}
,

Итак, Serial.read() и Serial.readBytes() были как бы двумя разными классами объектов?, @ShoutOutAndCalculate

нет. read() — основная функция. readBytes() также является функцией и реализована с использованием read()., @Juraj