Não consigo ler dados da porta serial Arduino UNO


#1

#include <SoftwareSerial.h>

#define BUFF_MAX 100

SoftwareSerial Fingerprint(2,3); //Define my Rx,Tx Pins

byte Test[24] = {0xEF,0x1,0xFF,0xFF,0xFF,0xFF, 0x01, 0x00, 0x04, 0x17,0x00,0x00,0x1C}; //Test Connection //Command For Test

char received_data;

//EF01H Xxxx 01H 0003H 0dH 0011H

byte data[50];

void setup()

{

Fingerprint.begin(57600); //start serial connection default baud

Serial.begin(57600);

}

void loop()

{

for(int x=0; x<13; x++)

{

  Serial.print(Test[x], HEX); //display byte

  data[x]=Serial.read();

  Serial.print(" ");

  delay(2000);  

}

  Serial.println(); //new line

Serial.print("received data is: ");

delay(2000);

for(int x=0; x<13; x++)

{

  Serial.print(data[x], HEX); //display byte

  Serial.print(" ");

   delay(2000);  

}

  Serial.println(); //new line

  delay(2000);  

}

Estou enviando a sequência de caracteres através da porta serial , e ao tentar ler estes mesmos dados ( estou fechando o RX com o TX), só recebo o retorno de FF.

Alguém poderia ajudar a realizar esta leitura?


#2

com software serial você não vai conseguir ler de um pino enquanto envia do outro.
Em hardware sim porque tem registros/buffers dedicados que processa tipo em “paralelo” , porem em software, você tem que fazer primeiro o envio depois a leitura. Você não consegue ler nada, porque voce ja terminou de enviar antes de começar a ler.