Diferencia entre revisiones de «Serial.read()»
De ArduWiki
(→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
Contenido
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
- Serial
- Serial.begin()
- Serial.peek()
- Serial.available()
- Serial.print()
- Serial.println()
- Serial.write()
- Serial.end()