Description

Returns the next byte (character) of incoming serial data without removing it from the internal serial buffer. That is, successive calls to peek() will return the same character, as will the next call to read().

Serial.peek() inherits from the Stream utility class.

Syntax

Serial.peek()

Parameters

The function admits the following object:

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

Returns

The function returns the first byte of incoming serial data available (or -1 if no data is available). Data type: int.

Example Code

The following code gives a first look at what is coming through serial and then prints it:

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("Type something:");
}

void loop() {
  if (Serial.available()) {
    char nextChar = Serial.peek();  // Look at the next character
    Serial.print("Next character will be: ");
    Serial.println(nextChar);

    char actualChar = Serial.read();  // Now actually consume it
    Serial.print("Read character: ");
    Serial.println(actualChar);
  }
}

See also