Diferencia entre revisiones de «Serial.setTimeout()»

De ArduWiki
Saltar a: navegación, buscar
(Referencias)
 
(No se muestran 6 ediciones intermedias de 2 usuarios)
Línea 2: Línea 2:
 
Establece los milisegundos máximos para esperar datos en serie al usar: [[Serial.readBytes()]] o [[Serial.readBytesUntil()]].  
 
Establece los milisegundos máximos para esperar datos en serie al usar: [[Serial.readBytes()]] o [[Serial.readBytesUntil()]].  
  
{{Nota|Por defecto es 1000 milisegundos.}}
+
{{Nota|Por defecto son 1000 milisegundos (1 segundo).}}
  
 
== Sintaxis ==
 
== Sintaxis ==
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 16: Línea 16:
  
 
== Advertencias ==
 
== Advertencias ==
Nada.
+
* 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(9600);
+
   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 ==
* [[Serial.begin()]]
+
<categorytree mode=all>Serial</categorytree>
* [[Serial.available()]]
 
* [[Serial.read()]]
 
* [[Serial.readBytesUntil()]]
 
* [[Serial.print()]]
 
* [[Serial.end()]]
 
  
 
== Referencias ==
 
== Referencias ==
  
[[Category:Funciones]]
+
[[Category:Serial]]

Revisión actual del 13:46 6 may 2019

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


Referencias