sds

Dependencies:   NOKIA_5110 mbed

Committer:
mustwillza
Date:
Sun Nov 15 19:38:36 2015 +0000
Revision:
0:8b94afcb61eb
dd

Who changed what in which revision?

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