cd

Dependencies:   mbed

Committer:
mavix14
Date:
Fri Feb 03 14:38:55 2017 +0000
Revision:
0:161f7fa5a879
rrr

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mavix14 0:161f7fa5a879 1 //Test of cheap 13.56 Mhz RFID-RC522 module from eBay
mavix14 0:161f7fa5a879 2 //This code is based on Martin Olejar's MFRC522 library. Minimal changes
mavix14 0:161f7fa5a879 3 //Adapted for Nucleo STM32 F401RE. Should work on other Nucleos too
mavix14 0:161f7fa5a879 4
mavix14 0:161f7fa5a879 5 //Connect as follows:
mavix14 0:161f7fa5a879 6 //RFID pins -> Nucleo header CN5 (Arduino-compatible header)
mavix14 0:161f7fa5a879 7 //----------------------------------------
mavix14 0:161f7fa5a879 8 //RFID IRQ=pin5 -> Not used. Leave open
mavix14 0:161f7fa5a879 9 //RFID MdISO=pin4 -> Nucleo SPI_MISO=PA_6=D12
mavix14 0:161f7fa5a879 10 //RFID MOSI=pin3 -> Nucleo SPI_MOSI=PA_7=D11
mavix14 0:161f7fa5a879 11 //RFID SCK=pin2 -> Nucleo SPI_SCK =PA_5=D13
mavix14 0:161f7fa5a879 12 //RFID SDA=pin1 -> Nucleo SPI_CS =PB_6=D10
mavix14 0:161f7fa5a879 13 //RFID RST=pin7 -> Nucleo =PA_9=D8
mavix14 0:161f7fa5a879 14 //3.3V and Gnd to the respective pins
mavix14 0:161f7fa5a879 15
mavix14 0:161f7fa5a879 16 #include "mbed.h"
mavix14 0:161f7fa5a879 17 #include "MFRC522.h"
mavix14 0:161f7fa5a879 18
mavix14 0:161f7fa5a879 19 // Nucleo Pin for MFRC522 reset (pick another D pin if you need D8)
mavix14 0:161f7fa5a879 20 #define MF_RESET D8
mavix14 0:161f7fa5a879 21
mavix14 0:161f7fa5a879 22 DigitalOut LedGreen(LED1);
mavix14 0:161f7fa5a879 23
mavix14 0:161f7fa5a879 24 //Serial connection to PC for output
mavix14 0:161f7fa5a879 25 Serial pc(SERIAL_TX, SERIAL_RX);
mavix14 0:161f7fa5a879 26
mavix14 0:161f7fa5a879 27 MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
mavix14 0:161f7fa5a879 28
mavix14 0:161f7fa5a879 29 int main(void) {
mavix14 0:161f7fa5a879 30 pc.printf("starting...\n");
mavix14 0:161f7fa5a879 31
mavix14 0:161f7fa5a879 32 // Init. RC522 Chip
mavix14 0:161f7fa5a879 33 RfChip.PCD_Init();
mavix14 0:161f7fa5a879 34
mavix14 0:161f7fa5a879 35 while (true) {
mavix14 0:161f7fa5a879 36 LedGreen = 1;
mavix14 0:161f7fa5a879 37 // Look for new cards
mavix14 0:161f7fa5a879 38 if ( ! RfChip.PICC_IsNewCardPresent())
mavix14 0:161f7fa5a879 39 {
mavix14 0:161f7fa5a879 40
mavix14 0:161f7fa5a879 41 wait_ms(500);
mavix14 0:161f7fa5a879 42 continue;
mavix14 0:161f7fa5a879 43 }
mavix14 0:161f7fa5a879 44
mavix14 0:161f7fa5a879 45 // Select one of the cards
mavix14 0:161f7fa5a879 46 if ( ! RfChip.PICC_ReadCardSerial())
mavix14 0:161f7fa5a879 47 {
mavix14 0:161f7fa5a879 48 pc.printf("Rien");
mavix14 0:161f7fa5a879 49 wait_ms(500);
mavix14 0:161f7fa5a879 50 continue;
mavix14 0:161f7fa5a879 51 }
mavix14 0:161f7fa5a879 52
mavix14 0:161f7fa5a879 53 LedGreen = 0;
mavix14 0:161f7fa5a879 54
mavix14 0:161f7fa5a879 55 // Print Card UID
mavix14 0:161f7fa5a879 56 pc.printf("Card UID: ");
mavix14 0:161f7fa5a879 57 for (uint8_t i = 0; i < RfChip.uid.size; i++)
mavix14 0:161f7fa5a879 58 {
mavix14 0:161f7fa5a879 59 pc.printf(" %X02", RfChip.uid.uidByte[i]);
mavix14 0:161f7fa5a879 60 }
mavix14 0:161f7fa5a879 61 pc.printf("\n\r");
mavix14 0:161f7fa5a879 62
mavix14 0:161f7fa5a879 63 // Print Card type
mavix14 0:161f7fa5a879 64 uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
mavix14 0:161f7fa5a879 65 pc.printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
mavix14 0:161f7fa5a879 66 wait_ms(1000);
mavix14 0:161f7fa5a879 67 }
mavix14 0:161f7fa5a879 68 }