Diferencia entre revisiones de «Serial.peek()»

De ArduWiki
Saltar a: navegación, buscar
(Retorna)
(Ejemplo)
 
(No se muestran 8 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 
== Descripción ==
 
== 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()]].  
+
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()]].
 
 
{{Nota|Serial.peek() hereda de la clase [[Stream]].}}
 
  
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
 +
Serial.peek();
 
</pre>
 
</pre>
  
 
== Parametros ==
 
== Parametros ==
 +
Nada.
  
 
== Retorna ==
 
== Retorna ==
Si no hay dato disponible devuelve -1.
+
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 ==
 
== Advertencias ==
Nada.
+
* 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 ==
 
== Ejemplo ==
 +
En este ejemplo debes meter caracteres en el monitor serie, pero siempre veras el primero.
 +
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
void setup(){
 
void setup(){
   Serial.begin(9600);
+
   Serial.begin(115200);
 
}
 
}
 
void loop(){
 
void loop(){
 
   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.write(car);           //Imprime siempre lo mismo
+
       Serial.write(car);           //Imprime siempre lo mismo, caracter
 +
      Serial.print(" = ");
 +
      Serial.println(car);        //Imprime siempre lo mismo, código ASCII
 
   }
 
   }
 
}
 
}
Línea 30: Línea 34:
  
 
== Vea también ==
 
== Vea también ==
* [[Serial.begin()]]
+
<categorytree mode=all>Serial</categorytree>
* [[Serial.available()]]
 
* [[Serial.print()]]
 
* [[Serial.end()]]
 
  
 
== Referencias ==
 
== Referencias ==
  
[[Category:Funciones]]
+
[[Category:Serial]]

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