Intial commit
This commit is contained in:
106
test/main.cpp
Normal file
106
test/main.cpp
Normal file
@@ -0,0 +1,106 @@
|
||||
#include "../src/rc522.h"
|
||||
#include <avr/io.h>
|
||||
#include "../lib/usart/src/usart.h"
|
||||
#include "string.h"
|
||||
|
||||
#define uchar unsigned char
|
||||
#define uint unsigned int
|
||||
#define MAX_LEN 16
|
||||
const int chipSelectPin = 10;
|
||||
const int NRSTPD = 5;
|
||||
|
||||
uchar serNum[5];
|
||||
uchar writeDate[16] ={'T', 'e', 'n', 'g', ' ', 'B', 'o', 0, 0, 0, 0, 0, 0, 0, 0,0};
|
||||
|
||||
uchar sectorKeyA[16][16] = {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||
};
|
||||
uchar sectorNewKeyA[16][16] = {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||
};
|
||||
|
||||
int main() {
|
||||
usart::init(1000000);
|
||||
printf("Hello");
|
||||
MFRC522_Init();
|
||||
while(1) {
|
||||
uchar i;
|
||||
uchar status;
|
||||
uchar str[MAX_LEN];
|
||||
uchar RC_size;
|
||||
uchar blockAddr; //Select the address of the operation 0~63
|
||||
|
||||
|
||||
// searching card, return card type
|
||||
status = MFRC522_Request(PICC_REQIDL, str);
|
||||
if (status == MI_OK)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
status = MFRC522_Anticoll(str);
|
||||
memcpy(serNum, str, 5);
|
||||
if (status == MI_OK)
|
||||
{
|
||||
printf("The card's number is : %x%x%x%x%x%x\n\r",
|
||||
serNum[0],
|
||||
serNum[1],
|
||||
serNum[2],
|
||||
serNum[3],
|
||||
serNum[4]);
|
||||
}
|
||||
|
||||
// select card, return card capacity
|
||||
RC_size = MFRC522_SelectTag(serNum);
|
||||
if (RC_size != 0)
|
||||
{}
|
||||
|
||||
// write data card
|
||||
blockAddr = 7; // data block 7
|
||||
status = MFRC522_Auth(PICC_AUTHENT1A, blockAddr, sectorKeyA[blockAddr/4], serNum); // authentication
|
||||
if (status == MI_OK)
|
||||
|
||||
{
|
||||
// write data
|
||||
status = MFRC522_Write(blockAddr, sectorNewKeyA[blockAddr/4]);
|
||||
printf("set the new card password, and can modify the data of the Sector: ");
|
||||
printf("%i", blockAddr/4);
|
||||
|
||||
// write data
|
||||
blockAddr = blockAddr - 3 ;
|
||||
status = MFRC522_Write(blockAddr, writeDate);
|
||||
if(status == MI_OK)
|
||||
{
|
||||
printf("OK!\n\r");
|
||||
}
|
||||
}
|
||||
|
||||
// read card
|
||||
blockAddr = 7; // data block 7
|
||||
status = MFRC522_Auth(PICC_AUTHENT1A, blockAddr,
|
||||
|
||||
sectorNewKeyA[blockAddr/4], serNum); // authentication
|
||||
if (status == MI_OK)
|
||||
{
|
||||
// read data
|
||||
blockAddr = blockAddr - 3 ;
|
||||
status = MFRC522_Read(blockAddr, str);
|
||||
if (status == MI_OK)
|
||||
{
|
||||
printf("Read from the card ,the data is : \n\r");
|
||||
for (i=0; i<16; i++)
|
||||
{
|
||||
printf("%c", str[i]);
|
||||
}
|
||||
printf("\n\r");
|
||||
}
|
||||
}
|
||||
printf("\n\r");
|
||||
MFRC522_Halt(); // command card into sleeping mode
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user