Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 从ESP32上的NFC卡获取UID_Arduino_Nfc_Esp32_Rfid_Pn532 - Fatal编程技术网

Arduino 从ESP32上的NFC卡获取UID

Arduino 从ESP32上的NFC卡获取UID,arduino,nfc,esp32,rfid,pn532,Arduino,Nfc,Esp32,Rfid,Pn532,我在阅读带有ESP32(使用Arduino IDE)的NFC卡时遇到了一些问题。我使用的是PN532模块,它工作得很好。到目前为止,我的代码如下所示: #include <SPI.h> #include <PN532_SPI.h> #include <PN532.h> #include <NfcAdapter.h> PN532_SPI pn532spi(SPI, SS); NfcAdapter nfc = NfcAdapter(pn532spi)

我在阅读带有ESP32(使用Arduino IDE)的NFC卡时遇到了一些问题。我使用的是PN532模块,它工作得很好。到目前为止,我的代码如下所示:

#include <SPI.h>
#include <PN532_SPI.h>
#include <PN532.h>
#include <NfcAdapter.h>

PN532_SPI pn532spi(SPI, SS);
NfcAdapter nfc = NfcAdapter(pn532spi);

void setup(void) {
    Serial.begin(115200);
    Serial.println("NDEF Reader");
    nfc.begin();
}


void loop(void) {
    //Serial.println("\nScan a NFC tag\n");
    if (! nfc.tagPresent())
    {
      return;}
    else{
        NfcTag tag = nfc.read();
        String scannedUID = tag.getUidString();
        Serial.println(scannedUID);
    }
    delay(5000);
}
#包括
#包括
#包括
#包括
PN532_SPI pn532spi(SPI,SS);
NfcAdapter nfc=NfcAdapter(pn532spi);
作废设置(作废){
序列号开始(115200);
Serial.println(“NDEF阅读器”);
begin();
}
无效循环(无效){
//Serial.println(“\n扫描NFC标记\n”);
如果(!nfc.tagPresent())
{
返回;}
否则{
NfcTag tag=nfc.read();
String scannedUID=tag.getUidString();
Serial.println(scannedUID);
}
延迟(5000);
}
这基本上就是don的ndef库中的示例。我只是得到了UID字符串,而不是打印卡的所有细节

它可以工作并显示UID。然而,我收到一条消息说“标签不是NDEF格式的”。我真的不在乎。我只想将UID打印成串行,然后在C#windows应用程序中获取它。我想我可以忽略它,但有没有办法阻止它出现

有更好的图书馆吗

谢谢


Andrew

我通过修改mifareclassic.cpp文件修复了它,该文件是库的一部分。我刚刚把那句冒犯的话注释掉了。也许是更好的方法,因为它还在检查。但是现在就可以了

谢谢

安德鲁