【求助】RC522读取M1卡流程

2019-10-11 14:46发布

我想请问下大家有没有用过RC522读取M1(S50)卡方案的朋友,这个M1卡里面有个在选卡之后的三次认证流程,请问在哪个流程体现....手头上的例程貌似都是发送操作指令+6字节密钥+块地址就好了...找不到三次认证流程
哪位大神说下 谢谢!
[mw_shl_code=c,true]/////////////////////////////////////////////////////////////////////
//功    能:验证卡片密码
//参数说明: auth_mode[IN]: 密码验证模式
//                 0x60 = 验证A密钥
//                 0x61 = 验证B密钥
//          addr[IN]:块地址
//          pKey[IN]:密码
//          pSnr[IN]:卡片序列号,4字节
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////               
char PcdAuthState(u8   auth_mode,u8   addr,u8 *pKey,u8 *pSnr)
{
    char   status;
    u8   unLen;
//     u8   i;
                u8         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);   }
    memcpy(&ucComMF522Buf[2], pKey, 6);
    memcpy(&ucComMF522Buf[8], pSnr, 4);
   
    status = PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);
    if ((status != MI_OK) || (!(ReadRawRC(Status2Reg) & 0x08)))
    {   status = MI_ERR;   }
   
    return status;
}[/mw_shl_code]


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
252290923
1楼-- · 2019-10-12 13:59
正点原子 发表于 2016-3-26 13:05
帮顶

252290923: 您好,我在开源网上看到您做RC522的程序,请问我想在把卡放在有效区域内时串口打印一次卡号,等卡拿开再次进入时再读一次卡号
252290923
2楼-- · 2019-10-12 14:33
tanruiqiang 发表于 2017-3-17 17:50
是CPU卡的。。。

252290923: 您好,我在开源网上看到您做RC522的程序,请问我想在把卡放在有效区域内时串口打印一次卡号,等卡拿开再次进入时再读一次卡号
252290923
3楼-- · 2019-10-12 19:05
小陀螺爱炒蛋 发表于 2017-3-17 18:04
找个逻辑分析仪来看吧,我当时做只调了下SPI时序,驱动直接拿模块厂家给的sample code就通了

252290923: 您好,我在开源网上看到您做RC522的程序,请问我想在把卡放在有效区域内时串口打印一次卡号,等卡拿开再次进入时再读一次卡号
tanruiqiang
4楼-- · 2019-10-12 22:01
252290923 发表于 2017-3-20 10:49
252290923: 您好,我在开源网上看到您做RC522的程序,请问我想在把卡放在有效区域内时串口打印一次卡号, ...

将 寻卡 防冲突 选卡操作放在while 循环里就行了  获得的卡号直接打印
AIben
5楼-- · 2019-10-12 22:10
 精彩回答 2  元偷偷看……

一周热门 更多>