JAVA门禁系统rc522_STM32例程+RFID-RC522门禁控制系统

该博客详细介绍了如何使用STM32微控制器和RC522模块实现JAVA门禁系统的关键功能,包括命令卡片进入休眠状态、MF522 CRC16计算以及RC522复位的函数实现。通过这些函数,可以有效控制RFID卡片进行门禁操作。
摘要由CSDN通过智能技术生成

这三个函数在对IC卡中非常重要,必须了解代码。

/

//功    能:命令卡片进入休眠状态

//返    回: 成功返回MI_OK

/

char PcdHalt(void)

{

char status;

unsigned int  unLen;

unsigned char ucComMF522Buf[MAXRLEN];

ucComMF522Buf[0] = PICC_HALT;

ucComMF522Buf[1] = 0;

CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);

status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);

return MI_OK;

}

/

//用MF522计算CRC16函数

/

void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData)

{

unsigned char i,n;

ClearBitMask(DivIrqReg,0x04);

WriteRawRC(CommandReg,PCD_IDLE);

SetBitMask(FIFOLevelReg,0x80);

for (i=0; i

{   WriteRawRC(FIFODataReg, *(pIndata+i));   }

WriteRawRC(CommandReg, PCD_CALCCRC);

i = 0xFF;

do

{

n = ReadRawRC(DivIrqReg);

i--;

}

while ((i!=0) && !(n&0x04));

pOutData[0] = ReadRawRC(CRCResultRegL);

pOutData[1] = ReadRawRC(CRCResultRegM);

}

/

//功    能:复位RC522

//返    回: 成功返回MI_OK

/

char PcdReset(void)

{

//unsigned char i;

MF522_RST=1;

delay_us(10);

MF522_RST=0;

delay_us(10);

MF522_RST=1;

delay_us(10);

WriteRawRC(CommandReg,PCD_RESETPHASE);

delay_us(10);

WriteRawRC(ModeReg,0x3D);            //和Mifare卡通讯,CRC初始值0x6363

WriteRawRC(TReloadRegL,30);

WriteRawRC(TReloadRegH,0);

WriteRawRC(TModeReg,0x8D);

WriteRawRC(TPrescalerReg,0x3E);

WriteRawRC(TxAutoReg,0x40);

return MI_OK;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值