Serial.write()

Описание

Записывает двоичные данные в последовательный порт. Эти данные отправляются как байт или последовательность байтов; для отправки символов, представляющих цифры числа, используйте вместо этого функцию print().

Синтаксис

Используйте следующие варианты функции для записи неизменённых данных в последовательный порт:

  • Serial.write(val)

  • Serial.write(str)

  • Serial.write(buf, len)

Параметры

Функция принимает следующие объекты и параметры:

  • Serial: объект последовательного порта. Список доступных последовательных портов для каждой платы см. на главной странице Serial.

  • val: значение, отправляемое как один байт.

  • str: строка, отправляемая как последовательность байтов.

  • buf: массив, отправляемый как последовательность байтов.

  • len: количество байт для отправки из массива.

Возвращаемое значение

Функция возвращает количество записанных байт, хотя чтение этого числа необязательно. Тип данных: size_t.

Пример кода

Следующий код показывает, как использовать Serial.write():

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.write(45); // отправить байт со значением 45

  int bytesSent = Serial.write("hello");  // отправить строку "hello" и вернуть длину строки
}

Примечания и предупреждения

Примечание

Передача по последовательному порту асинхронна. Если в передающем буфере достаточно свободного места, Serial.write() вернёт управление до того, как какие-либо символы будут переданы по порту. Если передающий буфер заполнен, то Serial.write() будет блокироваться, пока в буфере не освободится достаточно места. Чтобы избежать блокирующих вызовов Serial.write(), можно сначала проверить количество свободного места в передающем буфере с помощью availableForWrite().