Serial.write()

Description

Writes binary data to the serial port. This data is sent as a byte or series of bytes; to send the characters representing the digits of a number use the print() function instead.

Syntax

Use the following function variants to write unmodified data to the serial port:

  • Serial.write(val)
  • Serial.write(str)
  • Serial.write(buf, len)

Parameters

The function admits the following objects and parameters:

  • Serial
    : serial port object. See the list of available serial ports for each board on the Serial main page.

  • val
    : a value to send as a single byte.

  • str
    : a string to send as a series of bytes.

  • buf
    : an array to send as a series of bytes.

  • len
    : the number of bytes to be sent from the array.

Returns

The function returns the number of bytes written, though reading that number is optional. Data type:

size_t
.

Example Code

The following code shows how to use

Serial.write()
:

1void setup() {
2 Serial.begin(9600);
3}
4
5void loop() {
6 Serial.write(45); // send a byte with the value 45
7
8 int bytesSent = Serial.write("hello"); //send the string "hello" and return the length of the string.
9}

Notes and Warnings

Serial transmission is asynchronous. If there is enough empty space in the transmit buffer,

Serial.write()
will return before any characters are transmitted over serial. If the transmit buffer is full then
Serial.write()
will block until there is enough space in the buffer. To avoid blocking calls to
Serial.write()
, you can first check the amount of free space in the transmit buffer using availableForWrite().

Suggest changes

The content on docs.arduino.cc is facilitated through a public GitHub repository. If you see anything wrong, you can edit this page here.

License

The Arduino documentation is licensed under the Creative Commons Attribution-Share Alike 4.0 license.