Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MFRC522 NextionLCD
Fork of ProjectCardDisplay by
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
Generated on Wed Jul 13 2022 14:24:19 by
1.7.2
