This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

Dependencies:   NDefLib X_NUCLEO_NFC01A1 mbed

Fork of X-MBED-NFC1 by Giovanni Visentini

This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

The available demos are:

  • SAMPLE_WRITE_URL: write a tag with the ST home page URL
  • SAMPLE_COUNT_CLICK: create a custom tag to count and report the user button clicks.
  • SAMPLE_WRITE_AND_CHANGE_ALL: write a tag with all the supported records and update the tag contents when the user button is pressed.
  • SAMPLE_LOCK_TAG_CONTENT: use the M24SR component API to set the NFC tag as read-only.

To enable the different demos comment/uncomment the SAMPLE_* macros provided in main.cpp .

Committer:
giovannivisentini
Date:
Tue Dec 01 16:01:24 2015 +0000
Revision:
3:f7f818ee694e
Parent:
2:0648c1561eb2
create a sample main + semplify the class constuction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
giovannivisentini 0:674813bd5ec9 1 /*
giovannivisentini 0:674813bd5ec9 2 * X_NUCLEO_NFC01A1.cpp
giovannivisentini 0:674813bd5ec9 3 *
giovannivisentini 0:674813bd5ec9 4 * Created on: Nov 5, 2015
giovannivisentini 0:674813bd5ec9 5 * Author: giovanni visentini
giovannivisentini 0:674813bd5ec9 6 */
giovannivisentini 0:674813bd5ec9 7
giovannivisentini 0:674813bd5ec9 8 #include <X_NUCLEO_NFC01A1.h>
giovannivisentini 0:674813bd5ec9 9
giovannivisentini 2:0648c1561eb2 10 const uint8_t X_NUCLEO_NFC01A1::M24SR_ADDR=0xAC;
giovannivisentini 3:f7f818ee694e 11 const PinName X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN=D14;
giovannivisentini 3:f7f818ee694e 12 const PinName X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN=D15;
giovannivisentini 3:f7f818ee694e 13
giovannivisentini 3:f7f818ee694e 14
giovannivisentini 3:f7f818ee694e 15
giovannivisentini 3:f7f818ee694e 16 const PinName X_NUCLEO_NFC01A1::GPO_PIN=D12;
giovannivisentini 3:f7f818ee694e 17 const PinName X_NUCLEO_NFC01A1::RF_DISABLE_PIN=D11;
giovannivisentini 3:f7f818ee694e 18 const PinName X_NUCLEO_NFC01A1::LED1_PIN=D5;
giovannivisentini 3:f7f818ee694e 19 const PinName X_NUCLEO_NFC01A1::LED2_PIN=D4;
giovannivisentini 3:f7f818ee694e 20 const PinName X_NUCLEO_NFC01A1::LED3_PIN=D2;
giovannivisentini 2:0648c1561eb2 21
giovannivisentini 1:6d202b62ed68 22 X_NUCLEO_NFC01A1 *X_NUCLEO_NFC01A1::mInstance = NULL;
giovannivisentini 0:674813bd5ec9 23
giovannivisentini 3:f7f818ee694e 24 X_NUCLEO_NFC01A1* X_NUCLEO_NFC01A1::Instance(I2C &devI2C) {
giovannivisentini 2:0648c1561eb2 25 if (mInstance == NULL) { // the first time
giovannivisentini 3:f7f818ee694e 26 mInstance = new X_NUCLEO_NFC01A1(devI2C);
giovannivisentini 2:0648c1561eb2 27 if (mInstance != NULL) { //allocation ok
giovannivisentini 1:6d202b62ed68 28 const int status = mInstance->mM24SR.Init(NULL);
giovannivisentini 2:0648c1561eb2 29 if (status != NFC_SUCCESS) { //initialization failed
giovannivisentini 1:6d202b62ed68 30 delete mInstance;
giovannivisentini 1:6d202b62ed68 31 error(
giovannivisentini 1:6d202b62ed68 32 "Failed to init X_NUCLEO_NFC01A1 expansion board!\r\nError:0x%X\r\n",
giovannivisentini 1:6d202b62ed68 33 status);
giovannivisentini 1:6d202b62ed68 34 } //if init
giovannivisentini 1:6d202b62ed68 35 } //if instance !=NULL
giovannivisentini 1:6d202b62ed68 36 } //if instance
giovannivisentini 1:6d202b62ed68 37 return mInstance;
giovannivisentini 1:6d202b62ed68 38 }