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.第二次就失敗,然后就是成功,失敗,成功,失敗循環。。。。
有知道是怎么回事嗎?
|