Lehrer Busch / Mbed OS xxx_RFID_MFRC522

Dependencies:   MFRC522

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /**
00002 * MFRC522 example
00003 */*
00004 
00005  #include "mbed.h"
00006  #include "MFRC522.h"
00007 
00008  //KL25Z Pins for MFRC522 SPI interface
00009  #define SPI_MOSI    PTC6
00010  #define SPI_MISO    PTC7
00011  #define SPI_SCLK    PTC5
00012  #define SPI_CS      PTC4
00013  // KL25Z Pin for MFRC522 reset
00014  #define MF_RESET    PTC3
00015  // KL25Z Pins for Debug UART port
00016  #define UART_RX     PTA1
00017  #define UART_TX     PTA2
00018 
00019  DigitalOut LedRed   (LED_RED);
00020  DigitalOut LedGreen (LED_GREEN);
00021 
00022  Serial     DebugUART(UART_TX, UART_RX);
00023  MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
00024 
00025  int main(void)  {
00026    // Set debug UART speed
00027    DebugUART.baud(115200);
00028 
00029    // Init. RC522 Chip
00030    RfChip.PCD_Init();
00031 
00032    while (true) {
00033      LedRed   = 1;
00034      LedGreen = 1;
00035 
00036      // Look for new cards
00037      if ( ! RfChip.PICC_IsNewCardPresent())
00038      {
00039        wait_ms(500);
00040        continue;
00041      }
00042 
00043      LedRed   = 0;
00044 
00045      // Select one of the cards
00046      if ( ! RfChip.PICC_ReadCardSerial())
00047      {
00048        wait_ms(500);
00049        continue;
00050      }
00051 
00052      LedRed   = 1;
00053      LedGreen = 0;
00054 
00055      // Print Card UID
00056      printf("Card UID: ");
00057      for (uint8_t i = 0; i < RfChip.uid.size; i++)
00058      {
00059        printf(" %X02", RfChip.uid.uidByte[i]);
00060      }
00061      printf("\n\r");
00062 
00063      // Print Card type
00064      uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
00065      printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
00066      wait_ms(1000);
00067    }
00068  }
00069