1.寻卡,防碰撞,选卡,复位转入APDU命令,选择MF主目录成功后,我执行让卡休眠。然后把卡拿开,重新刷卡会在选择MF主目录这里失败。2.这样循环重复成功,失败,成功,失败。。。。。。
代码如下:
1.先寻卡,防碰撞,选卡
2.上述成功后,就执行如下代码: FMstatus=pro_reset(out_data,tt);//转入APDU命令格式CPU卡复位操作,成功后才能往下操作//
if(MI_OK==FMstatus)
{
FMstatus=MI_ERR;
st=FM1208_SelectFile(File_3F00, g_cReceBuf,tt);
printf("FM1208_SelectFile,st=0x%x\r\n",st);
if(st==0x9000)
{
FMstatus=MI_OK;
}
else
{
FMstatus=MI_ERR;
return FMstatus;
}
}
3.成功后就执行PcdHalt();让卡休眠。
串口打印现象如下:
Card type=0x0800
PcdAnticoll ok
Card_ID>>>6EFCD20C
PcdSelect ok
This is CPU Card,SAK=20
FM1208_SelectFile,st=0x9000
------------------------------------------
Card type=0x0800
PcdAnticoll ok
Card_ID>>>6EFCD20C
PcdSelect ok
This is CPU Card,SAK=20
FM1208_SelectFile,st=0xffff
同一张卡,第一次成功返回0x9000.第二次就失败,然后就是成功,失败,成功,失败循环。。。。
有知道是怎么回事吗?
|