我目前正在与Android,Firebase和Arduino合作一个项目,我想把FireBase项目的UID发送给我的arduino (在注册一个新用户之后),这样我就可以使用MFRC522把它写到一个MIFARE标签上。我使用USB电缆完成此操作。为了将UID字符串发送给arduino,我使用了这个UsbSerial Library1,它是我在这篇博客上找到的:
https://www.allaboutcircuits.com/projects/communicate-with-your-arduino-through-android/
与Arduino的连接工作正常,当从应用程序发送UID时,它显示的是我刚刚sent.However的UID字符串,当我读取标签时,它显示如下字符串:
⸮J⸮⸮⸮-⸮Zz⸮⸮Z/m⸮) h⸮1=#⸮⸮⸮⸮=?⸮
当我手动将UID字符串写入串行监视器时,它似乎工作得很好,因为当我读取标记时,它会显示正确的UID字符串,例如:
IaxeEXNUpRUhqfbyW78LtyoRbQw1
它们的尺寸是一样的。因此,在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");
}有人熟悉这个问题吗?
谢谢。
附言:这是我的第一篇文章,如果我说得不够清楚,非常抱歉
发布于 2018-06-13 13:47:54
使用64字节的缓冲区。在Arduino上查看android发送和接收的波特率是否相同。
https://stackoverflow.com/questions/50762980
复制相似问题