Diferencia entre revisiones de «Serial.setTimeout()»
De ArduWiki
m (→Parametros) |
(→Ejemplo) |
||
Línea 18: | Línea 18: | ||
* No se debe configurar con un valor excesivamente alto o bajo. Si es muy alto, las funciones bloqueantes fuertemente van a entorpecer la ejecución del programa; si es muy bajo, se puede interrumpir la operación antes de tiempo cuando se usan tasas de baudios bajas. | * No se debe configurar con un valor excesivamente alto o bajo. Si es muy alto, las funciones bloqueantes fuertemente van a entorpecer la ejecución del programa; si es muy bajo, se puede interrumpir la operación antes de tiempo cuando se usan tasas de baudios bajas. | ||
− | == Ejemplo == | + | == Ejemplo 1 == |
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
void setup(){ | void setup(){ | ||
− | Serial.begin( | + | Serial.begin(115200); |
Serial.setTimeout(500); | Serial.setTimeout(500); | ||
} | } | ||
Línea 28: | Línea 28: | ||
byte c = Serial.read(); | byte c = Serial.read(); | ||
Serial.println(c); | Serial.println(c); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 2 == | ||
+ | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(115200); | ||
+ | Serial.setTimeout(50); | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | if (Serial.available()) { | ||
+ | byte frase[20]; | ||
+ | size_t t = Serial.readBytesUntil('\n', frase, 20); | ||
+ | DEBUG(frase, t) | ||
} | } | ||
} | } |
Revisión del 00:32 13 jul 2018
Contenido
Descripción
Establece los milisegundos máximos para esperar datos en serie al usar: Serial.readBytes() o Serial.readBytesUntil().
Nota: Por defecto son 1000 milisegundos (1 segundo).
Sintaxis
Serial.setTimeout(tiempo);
Parametros
- tiempo
- tiendo de espera en milisegundos (unsigned long).
Retorna
Nada.
Advertencias
- No se debe configurar con un valor excesivamente alto o bajo. Si es muy alto, las funciones bloqueantes fuertemente van a entorpecer la ejecución del programa; si es muy bajo, se puede interrumpir la operación antes de tiempo cuando se usan tasas de baudios bajas.
Ejemplo 1
void setup(){
Serial.begin(115200);
Serial.setTimeout(500);
}
void loop(){
if (Serial.available()){
byte c = Serial.read();
Serial.println(c);
}
}
Ejemplo 2
void setup(){
Serial.begin(115200);
Serial.setTimeout(50);
}
void loop(){
if (Serial.available()) {
byte frase[20];
size_t t = Serial.readBytesUntil('\n', frase, 20);
DEBUG(frase, t)
}
}