![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
gpio demo
Fork of PN532_ReadUid by
main.cpp@1:b90509addac2, 2017-12-28 (annotated)
- 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?
User | Revision | Line number | New 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 |