需要一点帮助来修复 Arduino RFID 程序

Need a little help to fix an Arduino RFID program

我刚刚提取了程序中有问题的部分,我使用 RFID.hSPI.h, 我只想知道如何读取 RFID 卡(用 android phone 写的) 我只写一个字母:R, G, B, Y, ...(代表颜色),在 Android 工具上,我可以在扇区 04 看到:?TenR?当十后面的“R”是我要读取的字符串时:

    char buffer_data[8];
    rfid.read(0x04,buffer_data);
  
    String myString = String(buffer_data);
    Serial.println(myString);

我只想知道如何输出 => “R”(RFID 卡上 04 扇区的文本):它输出类似的内容:

22:05:15.885 -> 
22:05:15.885 -> &⸮
22:05:15.885 -> ⸮⸮

与其他卡片(里面的 Y、B 字符)相同的输出...

带卡数据的截图(Mifare classic 1k(716B可写)):

我假设“正方形”是指打印到标准输出的 ASCII 码。 我想知道 read_char 是 HEX 中的什么,所以不是将它作为字符打印到 stdout,而是打印它的十六进制表示并查看你得到什么值。可用的系统信息有限,很难为您提供更准确的故障排除步骤。

带有 rfid.read 的库 RFID.h 不工作... https://github.com/song940/RFID-RC522 不要使用这个库!

https://github.com/miguelbalboa/rfid 更好,是最新的,可以读取大多数标签类型!

这是读取 NTAG215 上第一个文本字符的固定代码:

if (rfid.PICC_IsNewCardPresent()) {
 if ( ! rfid.PICC_ReadCardSerial()) {
   return;
 }
  Serial.println("");
  String str;
  byte buffer_data[18];
  byte size_data = sizeof(buffer_data);
  rfid.MIFARE_Read(4,buffer_data,&size_data);
  str=String((char *)buffer_data);
  Serial.println(str.charAt(9));
}

仅在 NTAG215 上输出标签上的第一个字母(如果您使用 Android NFC 工具应用写入文本数据)(其他标签 = 不同 adresses/position)!