Diferencia entre revisiones de «Serial.readString()»
De ArduWiki
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 == | ||
Línea 10: | Línea 8: | ||
== 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 == | == Ejemplo == | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
+ | if (Serial.available()) { | ||
+ | Serial.print(F("Mensaje recuperado: \"")); | ||
+ | Serial.print(Serial.readString()); // Ojo con el tamaño, que puede que de aquí no pase u ocurra comportamiento indefinido. | ||
+ | Serial.println('\"'); | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión del 00:27 8 jul 2018
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
if (Serial.available()) {
Serial.print(F("Mensaje recuperado: \""));
Serial.print(Serial.readString()); // Ojo con el tamaño, que puede que de aquí no pase u ocurra comportamiento indefinido.
Serial.println('\"');
}