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().