Send NFC messages using NFC Shield V2.0 by SeeedStudio.

Dependencies:   PN532 mbed

The program uses the standard Arduino shields SPI pins:

SignalPin
SCKD13
MISOD12
MOSID11
CSD10

Note that this shield doesn't use the standard SPI pins, but relies on non-standard 6-pin SPI header located at the shield bottom. To make it work you will have to bridge those pins as shown on the image (the green SPI pins).

SignalPin 1Pin 2
MOSID11SPI4
MISOD12SPI1
SCKD13SPI3
Committer:
screamer
Date:
Tue Mar 25 16:48:28 2014 +0000
Revision:
0:e403d7000b50
Child:
2:f0e840a179ff
Initial revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 0:e403d7000b50 1 #include "mbed.h"
screamer 0:e403d7000b50 2 #include "PN532_SPI.h"
screamer 0:e403d7000b50 3 #include "snep.h"
screamer 0:e403d7000b50 4 #include "NdefMessage.h"
screamer 0:e403d7000b50 5
screamer 0:e403d7000b50 6 Serial pc(USBTX, USBRX);
screamer 0:e403d7000b50 7
screamer 0:e403d7000b50 8 uint8_t ndefBuf[128];
screamer 0:e403d7000b50 9
screamer 0:e403d7000b50 10 int main()
screamer 0:e403d7000b50 11 {
screamer 0:e403d7000b50 12 wait(2);
screamer 0:e403d7000b50 13
screamer 0:e403d7000b50 14 pc.printf("Initializing - ");
screamer 0:e403d7000b50 15 SPI spi(D11, D12, D13);
screamer 0:e403d7000b50 16 PN532_SPI pn532spi(spi, D10);
screamer 0:e403d7000b50 17 SNEP nfc(pn532spi);
screamer 0:e403d7000b50 18 pc.printf("Done\r\n");
screamer 0:e403d7000b50 19
screamer 0:e403d7000b50 20 while (1) {
screamer 0:e403d7000b50 21 pc.printf("Sending message - ");
screamer 0:e403d7000b50 22 NdefMessage message = NdefMessage();
screamer 0:e403d7000b50 23 message.addTextRecord("mbed NFC shield");
screamer 0:e403d7000b50 24 message.addUriRecord("http://www.seeedstudio.com");
screamer 0:e403d7000b50 25 int messageSize = message.getEncodedSize();
screamer 0:e403d7000b50 26 if (messageSize > sizeof(ndefBuf)) {
screamer 0:e403d7000b50 27 pc.printf("ndefBuf is too small\r\n");
screamer 0:e403d7000b50 28 while (1) {
screamer 0:e403d7000b50 29 }
screamer 0:e403d7000b50 30 }
screamer 0:e403d7000b50 31 message.encode(ndefBuf);
screamer 0:e403d7000b50 32 if (0 >= nfc.write(ndefBuf, messageSize)) {
screamer 0:e403d7000b50 33 pc.printf("Failed\r\n");
screamer 0:e403d7000b50 34 } else {
screamer 0:e403d7000b50 35 pc.printf("Success\r\n");
screamer 0:e403d7000b50 36 }
screamer 0:e403d7000b50 37
screamer 0:e403d7000b50 38 wait(3);
screamer 0:e403d7000b50 39 }
screamer 0:e403d7000b50 40 }