gpio demo

Dependencies:   LibPN532 mbed

Fork of PN532_ReadUid by dotnfc Tang

Committer:
zhangyx
Date:
Thu Dec 28 03:06:15 2017 +0000
Revision:
1:b90509addac2
Parent:
0:54a12c4b19c2
gpio demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dotnfc 0:54a12c4b19c2 1 // Basic example show how to read a tag uid.
dotnfc 0:54a12c4b19c2 2 // you can use i2c, spi, hsu interface.
dotnfc 0:54a12c4b19c2 3 //
dotnfc 0:54a12c4b19c2 4 // Assembled by dotnfc as Arducleo Sample
dotnfc 0:54a12c4b19c2 5 // 2016/09/10
dotnfc 0:54a12c4b19c2 6
dotnfc 0:54a12c4b19c2 7
dotnfc 0:54a12c4b19c2 8
dotnfc 0:54a12c4b19c2 9 #include "mbed.h"
dotnfc 0:54a12c4b19c2 10 #include "PN532.h"
dotnfc 0:54a12c4b19c2 11 #include "PN532_HSU.h"
dotnfc 0:54a12c4b19c2 12 #include "PN532_SPI.h"
dotnfc 0:54a12c4b19c2 13 #include "PN532_I2C.h"
dotnfc 0:54a12c4b19c2 14
dotnfc 0:54a12c4b19c2 15 Serial pc(SERIAL_TX, SERIAL_RX);
dotnfc 0:54a12c4b19c2 16
dotnfc 0:54a12c4b19c2 17 // ----------------------------------------- HSU
zhangyx 1:b90509addac2 18 HardwareSerial pn532_hsu (PC_10, PC_11);
zhangyx 1:b90509addac2 19 PN532_HSU pn532_if (pn532_hsu);
dotnfc 0:54a12c4b19c2 20
dotnfc 0:54a12c4b19c2 21 PN532 nfc(pn532_if);
dotnfc 0:54a12c4b19c2 22
dotnfc 0:54a12c4b19c2 23 /*==============================================================================
dotnfc 0:54a12c4b19c2 24 * \brief init the peripheral
dotnfc 0:54a12c4b19c2 25 */
dotnfc 0:54a12c4b19c2 26 void setup(void)
dotnfc 0:54a12c4b19c2 27 {
dotnfc 0:54a12c4b19c2 28 uint32_t versiondata = 0;
dotnfc 0:54a12c4b19c2 29 pc.baud(115200);
dotnfc 0:54a12c4b19c2 30 pc.printf ("Hello!\n");
dotnfc 0:54a12c4b19c2 31
dotnfc 0:54a12c4b19c2 32 while (1) {
dotnfc 0:54a12c4b19c2 33 nfc.begin();
dotnfc 0:54a12c4b19c2 34 //nfc.SAMConfig();
dotnfc 0:54a12c4b19c2 35 versiondata = nfc.getFirmwareVersion();
dotnfc 0:54a12c4b19c2 36 if (! versiondata) {
dotnfc 0:54a12c4b19c2 37 pc.printf("Didn't find PN53x board\n\n");
dotnfc 0:54a12c4b19c2 38 wait_ms(500);
dotnfc 0:54a12c4b19c2 39 } else {
dotnfc 0:54a12c4b19c2 40 break;
dotnfc 0:54a12c4b19c2 41 }
dotnfc 0:54a12c4b19c2 42 }
dotnfc 0:54a12c4b19c2 43
dotnfc 0:54a12c4b19c2 44 // Got ok data, print it out!
dotnfc 0:54a12c4b19c2 45 pc.printf ("Found chip PN5%02X , Firmware ver. %d.%d\n",
dotnfc 0:54a12c4b19c2 46 (versiondata>>24) & 0xFF,
dotnfc 0:54a12c4b19c2 47 (versiondata>>16) & 0xFF,
dotnfc 0:54a12c4b19c2 48 (versiondata>>8) & 0xFF);
dotnfc 0:54a12c4b19c2 49
dotnfc 0:54a12c4b19c2 50 // Set the max number of retry attempts to read from a card
dotnfc 0:54a12c4b19c2 51 // This prevents us from waiting forever for a card, which is
dotnfc 0:54a12c4b19c2 52 // the default behaviour of the PN532.
dotnfc 0:54a12c4b19c2 53 nfc.setPassiveActivationRetries(0xFF);
dotnfc 0:54a12c4b19c2 54
dotnfc 0:54a12c4b19c2 55 // configure board to read RFID tags
dotnfc 0:54a12c4b19c2 56 nfc.SAMConfig();
dotnfc 0:54a12c4b19c2 57
dotnfc 0:54a12c4b19c2 58 pc.printf ("\nWaiting for an ISO14443A card\n");
dotnfc 0:54a12c4b19c2 59 }
dotnfc 0:54a12c4b19c2 60
dotnfc 0:54a12c4b19c2 61
dotnfc 0:54a12c4b19c2 62 /*==============================================================================
dotnfc 0:54a12c4b19c2 63 * \brief main entry
dotnfc 0:54a12c4b19c2 64 */
dotnfc 0:54a12c4b19c2 65 int main()
dotnfc 0:54a12c4b19c2 66 {
dotnfc 0:54a12c4b19c2 67 setup();
dotnfc 0:54a12c4b19c2 68
zhangyx 1:b90509addac2 69 //PN532 GPIO 例子
zhangyx 1:b90509addac2 70 //对于P3
zhangyx 1:b90509addac2 71 nfc.writeGPIOP3(PN532_GPIO_P30); //把P30设置为1,其余P3设置为0
zhangyx 1:b90509addac2 72 nfc.writeGPIOP3(PN532_GPIO_P30|PN532_GPIO_P32); //把P30,P32设置为1,其余P3设置为0
zhangyx 1:b90509addac2 73 nfc.writeGPIOP3(0); //把P3全部设置为0
zhangyx 1:b90509addac2 74
zhangyx 1:b90509addac2 75 //对于P7
zhangyx 1:b90509addac2 76 nfc.writeGPIOP7(PN532_GPIO_P70); //把P70设置为1,其余P7设置为0
zhangyx 1:b90509addac2 77 nfc.writeGPIOP7(PN532_GPIO_P70|PN532_GPIO_P72); //把P70,P72设置为1,其余P7设置为0
zhangyx 1:b90509addac2 78 nfc.writeGPIOP7(0); //把P7全部设置为0
zhangyx 1:b90509addac2 79
zhangyx 1:b90509addac2 80 while (1);
dotnfc 0:54a12c4b19c2 81 }
dotnfc 0:54a12c4b19c2 82