Diferencia entre revisiones de «Serial.peek()»

De ArduWiki
Saltar a: navegación, buscar
(Referencias)
(Ejemplo)
 
Línea 26: Línea 26:
 
   if (Serial.available()){
 
   if (Serial.available()){
 
       byte car = Serial.peek();    //Lee caracter enviado y NO borra del buffer.
 
       byte car = Serial.peek();    //Lee caracter enviado y NO borra del buffer.
       Serial.wrte(car);            //Imprime siempre lo mismo, caracter
+
       Serial.write(car);            //Imprime siempre lo mismo, caracter
 
       Serial.print(" = ");
 
       Serial.print(" = ");
 
       Serial.println(car);        //Imprime siempre lo mismo, código ASCII
 
       Serial.println(car);        //Imprime siempre lo mismo, código ASCII

Revisión actual del 21:00 24 jun 2019

Descripción

Devuelve el siguiente byte (carácter) de los datos en serie entrantes sin eliminarlo del buffer serie interno. Es decir, las llamadas sucesivas a Serial.peek() devolverán el mismo carácter, al igual que la próxima llamada a Serial.read().

Sintaxis

Serial.peek();

Parametros

Nada.

Retorna

El valor recuperado según el número de bits de datos configurado, o -1 si el buffer de entrada está vacío (int).

Advertencias

  • Si por error no se verifica de antemano si hay datos disponibles, peek() retornará 255 para byte en el caso que el valor real sea -1 (nada).

Ejemplo

En este ejemplo debes meter caracteres en el monitor serie, pero siempre veras el primero.

void setup(){
   Serial.begin(115200);
}
void loop(){
   if (Serial.available()){
      byte car = Serial.peek();    //Lee caracter enviado y NO borra del buffer.
      Serial.write(car);            //Imprime siempre lo mismo, caracter
      Serial.print(" = ");
      Serial.println(car);         //Imprime siempre lo mismo, código ASCII
   }
}

Vea también


Referencias