Diferencia entre revisiones de «Serial.read()»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo)
(Ejemplo)
Línea 16: Línea 16:
 
* Si por error no se verifica de antemano si hay datos disponibles, '''read()''' retornará 255 para [[byte]] en el caso que el valor real sea -1 (nada).
 
* Si por error no se verifica de antemano si hay datos disponibles, '''read()''' retornará 255 para [[byte]] en el caso que el valor real sea -1 (nada).
  
== Ejemplo ==
+
== Ejemplo 1 ==
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
void setup(){
 
void setup(){
Línea 27: Línea 27:
 
       Serial.print(" = ");
 
       Serial.print(" = ");
 
       Serial.println(car);        //Imprime código ASCII carácter enviado
 
       Serial.println(car);        //Imprime código ASCII carácter enviado
 +
  }
 +
}
 +
</syntaxhighlight>
 +
 +
== Ejemplo 2 ==
 +
<syntaxhighlight lang="c++">
 +
#define DEBUG(a) Serial.println(a);
 +
String frase = "";
 +
 +
void setup(){
 +
  Serial.begin(115200);
 +
}
 +
 +
void loop(){
 +
  while (Serial.available()){
 +
      byte caracter = Serial.read();
 +
      if (caracter != '\n'){
 +
        fase.concat(caracter);
 +
      }else{
 +
        Serial.println(frase);
 +
        frase = "";
 +
      }
 
   }
 
   }
 
}
 
}

Revisión del 00:39 13 jul 2018

Descripción

Lee o captura un byte (un carácter) desde el puerto serie.

Sintaxis

byte variable = Serial.read();

Parametros

variable
variable para capturar byte de entrada

Retorno

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

Advertencia

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

Ejemplo 1

void setup(){
   Serial.begin(115200);
}
void loop(){
   if (Serial.available()){
      byte car = Serial.read();    //Lee caracter enviado y borra del buffer
      Serial.write(car);           //Imprime caracter enviado
      Serial.print(" = ");
      Serial.println(car);         //Imprime código ASCII carácter enviado
   }
}

Ejemplo 2

#define DEBUG(a) Serial.println(a);
String frase = "";
 
void setup(){
   Serial.begin(115200);
}
 
void loop(){
   while (Serial.available()){
      byte caracter = Serial.read();
      if (caracter != '\n'){
         fase.concat(caracter);
      }else{
         Serial.println(frase);
         frase = "";
      }
   }
}

Vea también

Referencias