Diferencia entre revisiones de «Serial.readString()»
De ArduWiki
(Página creada con «== Descripción == == Sintaxis == <pre> </pre> == Parametros == == Retorna == == Advertencias == Nada. == Ejemplo == <syntaxhighlight lang="c++"> </syntaxhighlight> =...») |
(→Referencias) |
||
(No se muestran 10 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
== Descripción == | == Descripción == | ||
+ | Lee caracteres y los coloca en un [[String]]. La función finaliza cuando el tiempo de espera (ver [[Serial.setTimeout()]]) se ha agotado. | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
+ | Serial.readString(); | ||
</pre> | </pre> | ||
− | |||
− | |||
== Retorna == | == Retorna == | ||
+ | El objeto [[String]] resultante de la lectura. | ||
== Advertencias == | == Advertencias == | ||
− | + | * Hay un "bug" o fallo con esta función: si el flujo de entrada es constante (tiempo de espera nunca se agota), se corre el riesgo de colgar completamente el programa. La razón se debe a que, conceptualmente, [[String]] es ilimitado en tamaño; pero como la [[SRAM]] no es así, eventualmente el programa llegará a colapsar. | |
+ | |||
+ | == Ejemplo 1 == | ||
+ | Envíe por la consola un mensaje corto. Por ejemplo "Hola mundo" | ||
− | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | void loop(){ | ||
+ | if (Serial.available()) { | ||
+ | Serial.print("Mensaje recuperado: \""); | ||
+ | Serial.print(Serial.readString()); | ||
+ | Serial.println('\"'); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 2 == | ||
+ | Envíe por la consola un mensaje corto. Por ejemplo "Hola mundo" | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | void loop(){ | ||
+ | if (Serial.available()) { | ||
+ | string texto = Serial.print(Serial.readString(); | ||
+ | Serial.println(texto.lenght()); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 3 == | ||
+ | En este ejemplo debes enviar una frase por la consola por ejemplo "Apuntes de Arduino". | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | void loop(){ | ||
+ | if (Serial.available()) { | ||
+ | String texto = Serial.readString(); | ||
+ | Serial.println(texto.length()); | ||
+ | } | ||
+ | }</syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>Serial</categorytree> | |
− | |||
− | |||
− | |||
== Referencias == | == Referencias == | ||
− | [[Category: | + | [[Category:Serial]] |
Revisión actual del 17:49 6 may 2019
Contenido
Descripción
Lee caracteres y los coloca en un String. La función finaliza cuando el tiempo de espera (ver Serial.setTimeout()) se ha agotado.
Sintaxis
Serial.readString();
Retorna
El objeto String resultante de la lectura.
Advertencias
- Hay un "bug" o fallo con esta función: si el flujo de entrada es constante (tiempo de espera nunca se agota), se corre el riesgo de colgar completamente el programa. La razón se debe a que, conceptualmente, String es ilimitado en tamaño; pero como la SRAM no es así, eventualmente el programa llegará a colapsar.
Ejemplo 1
Envíe por la consola un mensaje corto. Por ejemplo "Hola mundo"
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available()) {
Serial.print("Mensaje recuperado: \"");
Serial.print(Serial.readString());
Serial.println('\"');
}
}
Ejemplo 2
Envíe por la consola un mensaje corto. Por ejemplo "Hola mundo"
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available()) {
string texto = Serial.print(Serial.readString();
Serial.println(texto.lenght());
}
}
Ejemplo 3
En este ejemplo debes enviar una frase por la consola por ejemplo "Apuntes de Arduino".
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available()) {
String texto = Serial.readString();
Serial.println(texto.length());
}
}
Vea también