Exultsoft / Mbed OS ProjectCardDisplay

Dependencies:   MFRC522 NextionLCD

Fork of ProjectCardDisplay by Shivanand Gowda

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Card.cpp Source File

Card.cpp

00001 
00002 #include "MFRC522.h"
00003 #include "Card.h"
00004 
00005 #define     MIFARE_MOSI                 PA_7
00006 #define     MIFARE_MISO                 PA_6
00007 #define     MIFARE_SCLK                 PA_5
00008 #define     MIFARE_CS                   PA_4
00009 #define     MIFARE_RESET                PB_4
00010 
00011 MFRC522    mfrc522(MIFARE_MOSI,MIFARE_MISO,MIFARE_SCLK,MIFARE_CS,MIFARE_RESET);
00012 //MFRC522    mfrc522 (PA_7, PA_6, PA_5, PD_14, PD_15);
00013 
00014 bool New_Card=false,Read_Card=false;
00015 
00016 extern char  CARD_UID= {'\0'};
00017 MFRC522::MIFARE_Key key;
00018 void MIFARE_Init(void)
00019 
00020 {
00021     mfrc522.PCD_Init();
00022 
00023 }
00024 
00025 
00026 
00027 void Read_Card_Details(char *CARD_UID)
00028 {
00029     memset(CARD_UID,'\0',9);
00030     for (uint8_t i = 0; i < 6; i++)
00031         key.keyByte[i] = 0xFF;
00032   
00033     // Look for new cards
00034     
00035     if (  mfrc522.PICC_IsNewCardPresent()) {
00036          wait_ms(50);
00037             New_Card=true;
00038     }
00039     
00040     // Select one of the cards
00041     
00042     if (  mfrc522.PICC_ReadCardSerial()) {
00043        
00044          wait_ms(50);
00045         Read_Card=true;
00046     }
00047 
00048    
00049     if(Read_Card==true && New_Card==true) {
00050         char str1[3],str2[3],str3[3],str4[3];
00051         getHexa(mfrc522.uid.uidByte[0], str1);
00052         getHexa(mfrc522.uid.uidByte[1], str2);
00053         getHexa(mfrc522.uid.uidByte[2], str3);
00054         getHexa(mfrc522.uid.uidByte[3], str4);
00055         CARD_UID[0]=str4[0];
00056         CARD_UID[1]=str4[1];
00057         CARD_UID[2]=str3[0];
00058         CARD_UID[3]=str3[1];
00059         CARD_UID[4]=str2[0];
00060         CARD_UID[5]=str2[1];
00061         CARD_UID[6]=str1[0];
00062         CARD_UID[7]=str1[1];
00063         CARD_UID[8]='\0';
00064         printf("CARD_UID :   %s\r\n",CARD_UID);
00065         Read_Card=false;
00066         New_Card=false;
00067     }
00068 }
00069 
00070 void getHexa(char checkSum, char *str)
00071 {
00072     char strtemp[3];
00073 
00074     memset(strtemp, 0x00, sizeof(strtemp));
00075     sprintf(strtemp, "%02X", checkSum);
00076     memcpy(str, strtemp, 2);
00077 
00078     return;
00079 }
00080