[英]Arduino NFC Reading NDEF Message
我正在嘗試讀取從 arduino 到 arduino 的 ndef 消息。 當我嘗試從 Android 手機讀取該 ndef 消息時,它讀起來很好。 但是當我用 arduino 閱讀時,會出現如下錯誤:
Unknown TLV 1
Error. Can't decode message length.
NFC Tag - ERROR
UID 08 11 22 43
No NDEF Message
我使用 pn532 和我的 arduino 代碼:
#include <SPI.h>
#include <PN532_SPI.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_SPI pn532spi(SPI, 10);
NfcAdapter nfc = NfcAdapter(pn532spi);
void setup(void) {
Serial.begin(9600);
Serial.println("NDEF Reader");
nfc.begin();
}
void loop(void) {
Serial.println("\nScan a NFC tag\n");
if (nfc.tagPresent())
{
NfcTag tag = nfc.read();
tag.print();
}
delay(1000);
}
有什么問題? 謝謝。
從智能手機獲取信息 下面的程序用於從 Android 應用程序獲取信息。
要使其工作,您必須首先激活 NFC 功能和 Android Beam 數據交換。
然后,將智能手機帶到 NFC 盾牌...
#include "SPI.h"
#include "PN532_SPI.h"
#include "snep.h"
#include "NdefMessage.h"
PN532_SPI pn532spi(SPI, 10);
SNEP nfc(pn532spi);
uint8_t ndefBuf[128];
uint8_t recordBuf[128];
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println("Attente d'un message d'un Android");
int msgSize = nfc.read(ndefBuf, sizeof(ndefBuf));
if (msgSize > 0) {
NdefMessage msg = NdefMessage(ndefBuf, msgSize);
Serial.println("\nSucces");
NdefRecord record = msg.getRecord(0);
int recordLength = record.getPayloadLength();
if (recordLength <= sizeof(recordBuf)) {
record.getPayload(recordBuf);
Serial.write(recordBuf, recordLength);
for (int i = 0; i < 5; i++) {
Serial.write('\n');
}
delay(2000);
}
} else {
Serial.println("Echec");
}
delay(1000);
}
你能試試這個解決方案並告訴我。
閱讀更多: https : //arduino.blaisepascal.fr/nfc/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.