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:
Fri Nov 27 15:10:25 2015 +0000
Revision:
1:6d202b62ed68
Parent:
0:674813bd5ec9
Child:
2:0648c1561eb2
add the enable/disable read/write function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
giovannivisentini 0:674813bd5ec9 1 /*
giovannivisentini 0:674813bd5ec9 2 * X_NUCLEO_NFC01A1.h
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 #ifndef X_NUCLEO_NFC01A1_H_
giovannivisentini 0:674813bd5ec9 9 #define X_NUCLEO_NFC01A1_H_
giovannivisentini 0:674813bd5ec9 10
giovannivisentini 0:674813bd5ec9 11 #include "mbed.h"
giovannivisentini 0:674813bd5ec9 12
giovannivisentini 0:674813bd5ec9 13 #include "m24sr/m24sr_class.h"
giovannivisentini 0:674813bd5ec9 14
giovannivisentini 0:674813bd5ec9 15 #define M24SR_ADDR 0xAC /*!< M24SR address */
giovannivisentini 0:674813bd5ec9 16
giovannivisentini 0:674813bd5ec9 17 class X_NUCLEO_NFC01A1 {
giovannivisentini 0:674813bd5ec9 18
giovannivisentini 0:674813bd5ec9 19 private:
giovannivisentini 1:6d202b62ed68 20 static X_NUCLEO_NFC01A1 *mInstance;
giovannivisentini 0:674813bd5ec9 21
giovannivisentini 1:6d202b62ed68 22 X_NUCLEO_NFC01A1(I2C &devI2C, const PinName &gpoName,
giovannivisentini 1:6d202b62ed68 23 const PinName &RFDisableName, const PinName &led1Name,
giovannivisentini 1:6d202b62ed68 24 const PinName &led2Name, const PinName &led3Name) :
giovannivisentini 1:6d202b62ed68 25 mM24SR(M24SR_ADDR, devI2C, gpoName, RFDisableName), mNfcLed1(
giovannivisentini 1:6d202b62ed68 26 led1Name), mNfcLed2(led2Name), mNfcLed3(led3Name) {
giovannivisentini 0:674813bd5ec9 27
giovannivisentini 0:674813bd5ec9 28 }
giovannivisentini 0:674813bd5ec9 29
giovannivisentini 0:674813bd5ec9 30 public:
giovannivisentini 1:6d202b62ed68 31 static X_NUCLEO_NFC01A1* Instance(I2C &devI2C, const PinName &gpoName = D12,
giovannivisentini 1:6d202b62ed68 32 const PinName &RFDisableName = D11, const PinName &led1Name = D5,
giovannivisentini 1:6d202b62ed68 33 const PinName &led2Name = D4, const PinName &led3Name = D2);
giovannivisentini 0:674813bd5ec9 34
giovannivisentini 1:6d202b62ed68 35 DigitalOut& getLed1() {
giovannivisentini 1:6d202b62ed68 36 return mNfcLed1;
giovannivisentini 1:6d202b62ed68 37 }
giovannivisentini 1:6d202b62ed68 38 DigitalOut& getLed2() {
giovannivisentini 1:6d202b62ed68 39 return mNfcLed2;
giovannivisentini 1:6d202b62ed68 40 }
giovannivisentini 1:6d202b62ed68 41 DigitalOut& getLed3() {
giovannivisentini 1:6d202b62ed68 42 return mNfcLed3;
giovannivisentini 1:6d202b62ed68 43 }
giovannivisentini 0:674813bd5ec9 44
giovannivisentini 1:6d202b62ed68 45 M24SR& getM24SR() {
giovannivisentini 1:6d202b62ed68 46 return mM24SR;
giovannivisentini 1:6d202b62ed68 47 }
giovannivisentini 0:674813bd5ec9 48
giovannivisentini 1:6d202b62ed68 49 virtual ~X_NUCLEO_NFC01A1() {
giovannivisentini 1:6d202b62ed68 50 }
giovannivisentini 0:674813bd5ec9 51
giovannivisentini 0:674813bd5ec9 52 private:
giovannivisentini 0:674813bd5ec9 53
giovannivisentini 0:674813bd5ec9 54 M24SR mM24SR;
giovannivisentini 0:674813bd5ec9 55 DigitalOut mNfcLed1;
giovannivisentini 0:674813bd5ec9 56 DigitalOut mNfcLed2;
giovannivisentini 0:674813bd5ec9 57 DigitalOut mNfcLed3;
giovannivisentini 0:674813bd5ec9 58
giovannivisentini 0:674813bd5ec9 59 };
giovannivisentini 0:674813bd5ec9 60
giovannivisentini 0:674813bd5ec9 61 #endif /* X_NUCLEO_NFC01A1_H_ */