Android OTG与Arduino的通信(UsbSerial lib):读取奇怪的字节
我目前正在使用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中执行以下代码时出现问题: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字符串。但是,当我读取标记时,它显示的字符串如下:
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接收的波特率是否相同