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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 11: Строка 11:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
Serial.available()
Serial.available()
Serial1.available(), Serial2.available(), Serial3.available() — только для Mega
Serial1.available(), Serial2.available(), Serial3.available() — только для Mega
Строка 18: Строка 18:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
Нет.
Нет.
</syntaxhighlight>
</syntaxhighlight>
Строка 24: Строка 24:
==Что возвращает==
==Что возвращает==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
Число байтов, доступных для считывания.
Число байтов, доступных для считывания.
</syntaxhighlight>
</syntaxhighlight>
Строка 30: Строка 30:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
int incomingByte = 0;  // для данных, приходящих через последовательный порт
int incomingByte = 0;  // для данных, приходящих через последовательный порт



Версия от 12:38, 20 мая 2023

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


Функция 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); 
  }
}

См.также

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