Diferencia entre revisiones de «Serial.setTimeout()»
De ArduWiki
m |
(→Referencias) |
||
(No se muestran 5 ediciones intermedias de 2 usuarios) | |||
Línea 10: | Línea 10: | ||
== Parametros == | == Parametros == | ||
− | ;tiempo: tiendo de espera en milisegundos. | + | ;tiempo: tiendo de espera en milisegundos ([[unsigned long]]). |
== Retorna == | == Retorna == | ||
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) | ||
} | } | ||
} | } | ||
Línea 33: | Línea 49: | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>Serial</categorytree> | |
− | |||
− | |||
− | |||
− | |||
− | |||
== Referencias == | == Referencias == | ||
− | [[Category: | + | [[Category:Serial]] |
Revisión actual del 17:46 6 may 2019
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)
}
}
Vea también