RFID-RC522 code for testing a cheap 13.56 MHz module with the Nucleo F401RE. Based on the MFRC522 code by Martin Olejar.
Fork of MFRC522 by
main.cpp
00001 //Test of cheap 13.56 Mhz RFID-RC522 module from eBay 00002 //This code is based on Martin Olejar's MFRC522 library. Minimal changes 00003 //Adapted for Nucleo STM32 F401RE. Should work on other Nucleos too 00004 00005 //Connect as follows: 00006 //RFID pins -> Nucleo header CN5 (Arduino-compatible header) 00007 //---------------------------------------- 00008 //RFID IRQ=pin5 -> Not used. Leave open 00009 //RFID MISO=pin4 -> Nucleo SPI_MISO=PA_6=D12 00010 //RFID MOSI=pin3 -> Nucleo SPI_MOSI=PA_7=D11 00011 //RFID SCK=pin2 -> Nucleo SPI_SCK =PA_5=D13 00012 //RFID SDA=pin1 -> Nucleo SPI_CS =PB_6=D10 00013 //RFID RST=pin7 -> Nucleo =PA_9=D8 00014 //3.3V and Gnd to the respective pins 00015 00016 #include "mbed.h" 00017 #include "MFRC522.h" 00018 00019 // Nucleo Pin for MFRC522 reset (pick another D pin if you need D8) 00020 #define MF_RESET D8 00021 00022 DigitalOut LedGreen(LED1); 00023 00024 //Serial connection to PC for output 00025 Serial pc(SERIAL_TX, SERIAL_RX); 00026 00027 MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); 00028 00029 int main(void) { 00030 pc.printf("starting...\n"); 00031 00032 // Init. RC522 Chip 00033 RfChip.PCD_Init(); 00034 00035 while (true) { 00036 LedGreen = 1; 00037 00038 // Look for new cards 00039 if ( ! RfChip.PICC_IsNewCardPresent()) 00040 { 00041 wait_ms(500); 00042 continue; 00043 } 00044 00045 // Select one of the cards 00046 if ( ! RfChip.PICC_ReadCardSerial()) 00047 { 00048 wait_ms(500); 00049 continue; 00050 } 00051 00052 LedGreen = 0; 00053 00054 // Print Card UID 00055 pc.printf("Card UID: "); 00056 for (uint8_t i = 0; i < RfChip.uid.size; i++) 00057 { 00058 pc.printf(" %X02", RfChip.uid.uidByte[i]); 00059 } 00060 pc.printf("\n\r"); 00061 00062 // Print Card type 00063 uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); 00064 pc.printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType)); 00065 wait_ms(1000); 00066 } 00067 }
Generated on Tue Jul 12 2022 17:01:20 by
1.7.2
