Função Serial.readBytesUntil () na programação do Arduino

Funcao Serial Readbytesuntil Na Programacao Do Arduino



Quando se trata de programar com o Arduino, existem muitas funções que você pode usar para manipular entradas e saídas. 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.

Este artigo compila a função Serial.readBytesUntil() em profundidade. Discutiremos o que é, como funciona e abordaremos o código do Arduino que explica como usá-lo no código do Arduino.

Serial.readBytesUntil()

A função Serial.readBytesUntil() faz parte da classe Arduino Serial. Essa função lê dados de um fluxo até encontrar um caractere específico ou um número máximo de bytes. Uma vez encontrado o caractere ou o número máximo de bytes, a função interrompe a leitura e retorna os dados lidos.







A função Serial.readBytesUntil() termina sempre que as seguintes condições são atendidas:



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

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



Sintaxe

A função Serial.readBytesUntil() tem a seguinte sintaxe:





Serial. lerBytesAté ( Caracteres Exterminador do Futuro, Caracteres * amortecedor, tamanho_t comprimento ) ;

Parâmetros

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

  • Personagem Exterminador do Futuro: O caractere no qual a função parará de ler.
  • amortecedor: No buffer, os dados seriais lidos são O tipo de dados permitido é uma matriz de char ou byte.
  • comprimento: O número máximo de bytes a serem lidos. O tipo de dado permitido é int .

Retornar

O número de bytes colocados no buffer.



Notas: Nos dados de retorno, o caractere terminador é descartado pela função Serial.readBytesUntil() do fluxo de dados.

Exemplo de código do Arduino

O seguinte código do Arduino explica o uso de Serial.readBytesUntil() função:

vazio configurar ( ) {
Serial. começar ( 9600 ) ; // Inicializa a conexão serial com baud rate de 9600
}

vazio laço ( ) {
buffer de bytes [ 5 ] ; // Define um array de bytes para armazenar os dados recebidos
int numBytes = Serial. lerBytesAté ( ' \n ' , amortecedor, 5 ) ; // Lê os dados recebidos da conexão serial até que um caractere de nova linha seja encontrado

se ( numBytes > 0 ) { // Verifica se algum byte foi lido
Serial. imprimir ( 'Caractere recebido: ' ) ;
Serial. escrever ( buffer, numBytes ) ; // Imprime os dados recebidos no monitor serial
Serial. println ( ) ;
}
}

Na função setup(), a taxa de transmissão estabelecerá a comunicação serial.

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

A seguir, chamamos o Serial.readBytesUntil() função, que lê os dados recebidos da conexão serial até encontrar um caractere de nova linha ('\n'). O próximo argumento é o comprimento do buffer que levará no máximo 5 bytes de dados por vez.

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

Saída

Conclusão

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