Как установить время ожидания, например 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()?
1 ответ
Лучший ответ:
▲ 1
Вы не можете установить время ожидания для read(), но вы можете использовать readBytes() для чтения одного байта.
byte b;
int count = Serial.readBytes(&b, 1); // чтение одного байта с тайм-аутом
if (count) { // 0 или 1
Serial.write(b); //эхо
}
,
@Juraj
Смотрите также:
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Как использовать Serial.setTimeout()
- Отправить структуру через Serial
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Последовательная связь между несколькими устройствами (или ардуино)
- Что является более быстрой альтернативой parseInt()?
- как отправить данные в Adafruit Bluefruit Feather (32u4) через Bluetooth?
- Arduino UART (TX/RX) multidrop 1 master 50 slaves
Итак, Serial.read() и Serial.readBytes() были как бы двумя разными классами объектов?, @ShoutOutAndCalculate
нет. read() — основная функция. readBytes() также является функцией и реализована с использованием read()., @Juraj