PcdRestore.c
资源名称:RC500.rar [点击查看]
上传用户:hbtfgg
上传日期:2021-12-10
资源大小:16k
文件大小:2k
源码类别:
RFID编程
开发平台:
C/C++
- #include<reg52.h>
- #include<rc500.h>
- char PcdRestore(uchar addr)
- {
- char status;
- idata struct TranSciveBuffer{uchar MfCommand;
- uchar MfLength;
- uchar MfData[4];
- }MfComData;
- struct TranSciveBuffer *pi;
- pi=&MfComData;
- PcdSetTmo(4);
- MfComData.MfCommand=PCD_TRANSCEIVE;
- MfComData.MfLength=2;
- MfComData.MfData[0]=PICC_RESTORE;
- MfComData.MfData[1]=addr;
- status=PcdComTransceive(pi);
- if(status!=MI_NOTAGERR)
- {
- if(MfComData.MfLength!=4)
- {
- status=MI_BITCOUNTERR;
- }
- else
- {
- MfComData.MfData[0]&=0x0f;
- switch(MfComData.MfData[0])
- {
- case 0x00:
- status=MI_NOTAUTHERR;
- break;
- case 0x0a:
- status=MI_OK;
- break;
- case 0x01:
- status=MI_VALERR;
- break;
- default:
- status=MI_CODEERR;
- break;
- }
- }
- }
- if(status==MI_OK)
- {
- PcdSetTmo(4);
- MfComData.MfCommand=PCD_TRANSCEIVE;
- MfComData.MfLength=4;
- MfComData.MfData[0]=0;
- MfComData.MfData[1]=0;
- MfComData.MfData[2]=0;
- MfComData.MfData[3]=0;
- status=PcdComTransceive(pi);
- if(status==MI_NOTAGERR)
- {
- status=MI_OK;
- }
- }
- return status;
- }