Arduino:Справочник языка Arduino/Библиотеки/Serial/available()

Материал из Онлайн справочника
Версия от 09:30, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция available()[1]

Описание

Эта функция получает информацию о числе байтов (символов), доступных для считывания через последовательный порт. Это данные, которые уже пришли и хранятся в буфере последовательного порта (который может хранить до 64 байтов). Функция .available() наследует от вспомогательного класса Stream.

Синтаксис

Serial.available()
Serial1.available(), Serial2.available(), Serial3.available()  только для Mega

Параметры

Нет.

Что возвращает

Число байтов, доступных для считывания.

Пример

int incomingByte = 0;   // для данных, приходящих через последовательный порт

void setup() {
        Serial.begin(9600);     // открывает последовательный порт, задает скорость передачи данных на 9600
}

void loop() {

        // Отправляем данные, только если получили данные:
        if (Serial.available() > 0) {
                // Считываем входящий байт:
                incomingByte = Serial.read();

                // Отображаем на Serial Monitor то, что получили:
                Serial.print("I received: ");  //  "Я получил: "
                Serial.println(incomingByte, DEC);
        }
}
Пример для Arduino Mega
void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);

}

void loop() {
  // Считываем с 0-ого порта, отсылаем на 1-ый порт:
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial1.print(inByte, BYTE); 

  }
  // Считываем с 1-ого порта, отсылаем на 0-ой порт:
  if (Serial1.available()) {
    int inByte = Serial1.read();
    Serial.print(inByte, BYTE); 
  }
}

См.также

Внешние ссылки