PN532 Driver library This library provides an abstract API to drive the pn532 nfc chip, with I2C/HSU/SPI interface. Its based on the Seeed Studio's Arduino version.

Dependents:   PN532_ReadUid Nfctest2

Revision:
0:db8030e71f55
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PN532/examples/emulate_tag_ndef/emulate_tag_ndef.ino	Tue Sep 13 06:01:19 2016 +0000
@@ -0,0 +1,69 @@
+
+#include "SPI.h"
+#include "PN532_SPI.h"
+#include "emulatetag.h"
+#include "NdefMessage.h"
+
+PN532_SPI pn532spi(SPI, 10);
+EmulateTag nfc(pn532spi);
+
+uint8_t ndefBuf[120];
+NdefMessage message;
+int messageSize;
+
+uint8_t uid[3] = { 0x12, 0x34, 0x56 };
+
+void setup()
+{
+  Serial.begin(115200);
+  Serial.println("------- Emulate Tag --------");
+  
+  message = NdefMessage();
+  message.addUriRecord("http://www.seeedstudio.com");
+  messageSize = message.getEncodedSize();
+  if (messageSize > sizeof(ndefBuf)) {
+      Serial.println("ndefBuf is too small");
+      while (1) { }
+  }
+  
+  Serial.print("Ndef encoded message size: ");
+  Serial.println(messageSize);
+
+  message.encode(ndefBuf);
+  
+  // comment out this command for no ndef message
+  nfc.setNdefFile(ndefBuf, messageSize);
+  
+  // uid must be 3 bytes!
+  nfc.setUid(uid);
+  
+  nfc.init();
+}
+
+void loop(){
+    // uncomment for overriding ndef in case a write to this tag occured
+    //nfc.setNdefFile(ndefBuf, messageSize); 
+    
+    // start emulation (blocks)
+    nfc.emulate();
+        
+    // or start emulation with timeout
+    /*if(!nfc.emulate(1000)){ // timeout 1 second
+      Serial.println("timed out");
+    }*/
+    
+    // deny writing to the tag
+    // nfc.setTagWriteable(false);
+    
+    if(nfc.writeOccured()){
+       Serial.println("\nWrite occured !");
+       uint8_t* tag_buf;
+       uint16_t length;
+       
+       nfc.getContent(&tag_buf, &length);
+       NdefMessage msg = NdefMessage(tag_buf, length);
+       msg.print();
+    }
+
+    delay(1000);
+}