微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于射频RFID-RC522的使用和见解

关于射频RFID-RC522的使用和见解

时间:10-02 整理:3721RD 点击:
/******************************************************************************************
* 函数名称    :char PcdAuthState(unsigned char  auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr)
* 功能描述    :验证卡片密码
* 输入参数    :auth_mode[IN]: 密码验证模式
*                 0x60 = 验证A密钥
*                 0x61 = 验证B密钥
*                  addr[IN]:块地址(0~63)
*                  pKey[IN]:密码
*                  pSnr[IN]:卡片序列号,4字节
* 返回值      :成功返回MI_OK
* 作者        :LXY
* 创建日期    : 2013-12
char PcdAuthState(unsigned char  auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr)
{
    char  status;
    unsigned int  unLen;
    unsigned char i,ucComMF522Buf[MAXRLEN];
    ucComMF522Buf[0] = auth_mode;
    ucComMF522Buf[1] = addr;          //读第几块
    for (i=0; i<6; i++)
    {    ucComMF522Buf[i+2] = *(pKey+i);   } //存放密码
    for (i=0; i<6; i++)
    {    ucComMF522Buf[i+8] = *(pSnr+i);   }
      
  status = PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);
ceshi=ReadRawRC(Status2Reg);
    if ((status != MI_OK)|| (!(ReadRawRC(Status2Reg) & 0x08) ) )         // //问题:取消掉这个寄存器的位检测可以吗?我测试过Status2Reg寄存器的值始终为0x00,没有执行成功MFAuthent命令,所以没有置位,导致我的IC卡认证不成功,我删掉|| (!(ReadRawRC(Status2Reg) & 0x08) ) 这句后就正常了,请问这个寄存器具体什么作用,我不认证了,对安全上有什么影响吗?。
    {  
status = (char)MI_ERR;
    }
   
    return status;
}

问题就是密匙验证不成功,我这个步骤的具体流程什么意思啊,我能取消掉这个流程吗?

有修改扇区密码的函数么?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top