Android OTG与Arduino的通信(UsbSerial lib):读取奇怪的字节

Android OTG与Arduino的通信(UsbSerial lib):读取奇怪的字节,android,firebase,arduino,usbserial,usb-otg,Android,Firebase,Arduino,Usbserial,Usb Otg,我目前正在使用Android、Firebase和Arduino进行一个项目,我希望将Firebase项目的UID发送到我的Arduino(注册新用户后),以便使用MFRC522将其写入MIFARE标记。我用USB OTG电缆来做这件事。为了将UID字符串发送到arduino,我使用了这个[UsbSerial Library][1,我在这篇博客文章中找到了它: 与Arduino的连接正在工作,当从应用程序发送UID时,它显示的是我刚才发送的UID字符串。但是,当我读取标记时,它显示的字符串如下:

我目前正在使用Android、Firebase和Arduino进行一个项目,我希望将Firebase项目的UID发送到我的Arduino(注册新用户后),以便使用MFRC522将其写入MIFARE标记。我用USB OTG电缆来做这件事。为了将UID字符串发送到arduino,我使用了这个[UsbSerial Library][1,我在这篇博客文章中找到了它:

与Arduino的连接正在工作,当从应用程序发送UID时,它显示的是我刚才发送的UID字符串。但是,当我读取标记时,它显示的字符串如下:

⸮J⸮⸮⸮-⸮Zz⸮⸮Z/m⸮) H⸮1=#⸮⸮⸮⸮=?⸮

当我手动将UID字符串写入串行监视器时,它似乎工作正常,因为当我读取标签时,它会显示正确的UID字符串,例如:

IAXEXNUPRUHQFBYW78LTYORBQW1

它们大小一样。 因此,在Arduino中执行以下代码时出现问题:

   byte buffer[28];


if(Serial.available()>0)  
      { 
    Serial.readBytes(buffer, 28); //UID is 28 bits long
    }
在Android中,我通过以下方式发送字符串:

public void SendUID(String s){
        byte[] bytesOut = s.getBytes();
        serialPort.write(bytesOut   );
        tvAppend(textView, "\nData Sent : " + uid + "\n");
    }
有人熟悉这个问题吗

多谢各位

PS:这是我的第一篇帖子,如果我不够清楚,很抱歉使用64字节缓冲区。 检查android发送和Arduino接收的波特率是否相同