Serial.setTimeout e serial.Gettimeout Funções Arduino

Serial.setTimeout e serial.Gettimeout Funções Arduino
Um dos componentes essenciais do Arduino é a comunicação serial, que permite a troca de dados entre a placa Arduino e um computador. Neste artigo, discutiremos duas funções Arduino, serial.setTimeout () e serial.gettimeout (). Explicaremos a sintaxe, os parâmetros e retornarão valores dessas funções e fornecermos exemplos de seu uso.

Serial.setTimeout () - Arduino

A série.A função setTimeout () em Arduino é usada para definir o tempo máximo em milissegundos de que o programa aguarda dados seriais. Por padrão, o tempo limite definido é de 1000 milissegundos. A série.A função setTimeout () vem da classe Stream em Arduino, que fornece um conjunto de maneiras comuns de trabalhar com entradas/saídas.

A série.A função setTimeout () é útil ao trabalhar com conexões lentas ou não confiáveis.

Sintaxe
A sintaxe para série.A função setTimeout () é:

Serial.setTimeout (tempo)

Parâmetros

Para usar serial.setTimeout (), você precisa fornecer o objeto de porta serial como o primeiro parâmetro e a duração do tempo limite em milissegundos como o segundo parâmetro. A duração pode ser expressa como um tipo de dados longo.

O valor do período de tempo limite está em milissegundos (MS). Esse valor de tempo limite não é assinado por muito tempo que começa de 1 e sobe para 4294967295 milissegundos.

Retorna

Esta função não retorna nenhum valor.

Serial.gettimeout () - Arduino

A série.função gettimeout () retorna o período de tempo limite atual para a comunicação serial. Pode ser usado para determinar o período de tempo limite atual ou restaurar o período de tempo limite padrão.

Sintaxe
A sintaxe para série.gettimeout () função é:

Serial.gettimeout (tempo);

Parâmetros

Esta função não leva parâmetros.

Retorna

Esta função retorna o valor do tempo limite definido, que é por padrão 1000ms e pode ser alterado usando a série.gettimeout (). O tipo de dados de valor de retorno é não assinado por muito tempo.

Código de exemplo

No exemplo seguinte, obtemos o período de tempo limite atual usando a série.função gettimeout (). Em seguida, imprimimos o período de tempo limite para o monitor serial. Em seguida, mudamos o período de tempo limite para 5 segundos e depois o imprimimos novamente no monitor serial.

Void Setup ()
Serial.começar (9600); // Inicialize a comunicação serial a 9600 bits por segundo
não assinado long defaultTimeout = serial.gettimeout (); // Obtenha o período de tempo limite padrão
Serial.print ("Período de tempo limite padrão é:");
Serial.println (defaultTimeout); // Imprima o período de tempo limite padrão para o monitor serial
Serial.setTimeout (5000); // Defina o período de tempo limite para 5000 milissegundos (5 segundos)
Timeout de longa data não assinado = serial.gettimeout (); // Obtenha o período de tempo limite atual
Serial.print ("Período de tempo limite atual é:");
Serial.println (tempo limite); // Imprima o período de tempo limite atual para o monitor serial

Void Loop ()

No código acima o configurar() A função inicializa a comunicação serial a 9600 bits por segundo e recebe o período de tempo limite padrão usando a série.função gettimeout (). O período de tempo limite padrão é exibido no monitor serial.

Em seguida, a série.A função setTimeout () é usada para definir o novo período de tempo limite para 5 segundos (5000 milissegundos).

A função loop () recupera o período de tempo limite atual usando a série.gettimeout () função e exibe -o no monitor serial. Um atraso de 1 segundo é adicionado antes de imprimir o próximo valor para impedir que o monitor serial seja inundado com dados. Este código pode ser usado para verificar se o período de tempo limite está definido corretamente e que a série.gettimeout () função está funcionando como esperado.

Saída
Na saída, podemos ver o tempo limite padrão e o novo tempo limite é impresso no monitor serial.

Conclusão

O Serial.setTimeout () e Serial.gettimeout () Funções são funções importantes de utilidade na língua Arduino. Serial.setTimeout () define o tempo máximo em milissegundos que o programa aguarda dados seriados, enquanto seriam.gettimeout () recupera o período de tempo limite atual. Essas funções são úteis para trabalhar com dispositivos externos que nem sempre fornecem dados dentro de um prazo específico.