Serial.Função ReadBytesuntil na programação Arduino

Serial.Função ReadBytesuntil na programação Arduino
Quando se trata de programação com Arduino, existem muitas funções que você pode usar para manipular a entrada e a saída. Uma função principal do Arduino é Serial.Readbytesuntil (), que permite ler dados de um fluxo até que um caractere específico seja encontrado. Esta função ajuda a ler dados de dispositivos seriais até encontrarmos os dados necessários.

Esta redação compila a série.ReadByTesuntil () Função em profundidade. Discutiremos o que é, como funciona e cobrirá o código Arduino que explica como usá -lo no Código Arduino.

Serial.Readbytesuntil ()

A série.ReadBytesuntil () Função faz parte da classe serial Arduino. Esta função lê dados de um fluxo até encontrar um personagem específico ou um número máximo de bytes. Depois que o personagem ou o número máximo de bytes é encontrado, a função para de ler e retorna os dados que lê.

A série.A função readByTesuntil () termina sempre que as seguintes condições são atendidas:

  • Quando a função detecta um personagem terminador
  • O comprimento do buffer definido é atingido
  • O tempo definido é passado ou tempo

Esta função não retorna o caractere do Terminator, ele apenas retorna dados ao último caractere antes do Terminator. Quando 0 é retornado por esta função, significa que nenhum dado válido é encontrado.

Sintaxe

A série.ReadByTesuntil () Função tem a seguinte sintaxe:

Serial.readbytesuntil (Terminator de char, char* buffer, tamanho_t comprimento);

Parâmetros

A seguir estão os parâmetros da serial da função.ReadBytesuntil ():

  • Personagem do Terminator: O personagem que a função vai parar de ler em.
  • amortecedor: No buffer, os dados seriais de leitura são o tipo de dados permitido é uma matriz de char ou byte.
  • comprimento: O número máximo de bytes para ler. O tipo de dados permitido é int.

Retornar

O número de bytes colocados no buffer.

Notas: Em retorno, dados, o caractere do terminador é descartado pela serial da função.ReadBytesEntil () do fluxo de dados.

Exemplo de código Arduino

Seguindo o código do Arduino, explique o uso de Serial.Readbytesuntil () função:

Void Setup ()
Serial.começar (9600); // inicialize a conexão serial com uma taxa de transmissão de 9600

Void Loop ()
buffer de byte [5]; // Defina uma matriz de bytes para armazenar os dados de entrada
int numbytes = serial.readbytesuntil ('\ n', buffer, 5); // Leia os dados recebidos da conexão serial até que um caractere de nova linha seja encontrado
if (numbytes> 0) // verifique se algum bytes foi lido
Serial.print ("personagem recebido:");
Serial.escreva (buffer, numbytes); // Imprima os dados recebidos para o monitor serial
Serial.println ();

Na taxa de transmissão da função Setup () estabelecerá comunicação serial.

Na função loop (), primeiro definimos uma matriz de bytes chamada 'amortecedor'. Esta matriz será usada para armazenar os dados recebidos lidos na conexão serial.

Em seguida, chamamos o Serial.Readbytesuntil () Função, que lê dados recebidos da conexão serial até encontrar um personagem de nova linha ('\ n'). O próximo argumento é a duração do buffer, que levará no máximo 5 bytes de dados por vez.

O byte retornado é armazenado no 'numbytes' variável. Caso se os dados recebidos forem maiores que o comprimento do buffer, os dados serão encerrados e serão enviados no próximo fluxo de dados.

Saída

Conclusão

O Serial.Readbytesuntil () A função na programação de Arduino lê bytes de um fluxo de entrada serial até que um caractere de terminador especificado seja recebido. A função fornece bytes totais lidos e os armazena em um buffer fornecido. Leia o artigo para obter mais informações relacionadas à série.Função ReadBytesuntil ().