久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 815|回復: 1
收起左側

有無大佬解答一下RC522操作復旦微FM1208CPU卡的疑問

[復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
ID:777254 發表于 2024-9-7 16:46 | 顯示全部樓層 |閱讀模式
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.第二次就失敗,然后就是成功,失敗,成功,失敗循環。。。。
有知道是怎么回事嗎?





回復

使用道具 舉報

ID:404160 發表于 2024-9-10 14:36 | 顯示全部樓層
優化代碼邏輯:

增加延時: 在PcdHalt()后和下一次刷卡前增加適當的延時,確保卡有足夠的時間進入休眠和喚醒。
重置狀態變量: 在每次刷卡操作前,重置錯誤標志、超時計數等狀態變量,確保每次操作都是從一個干凈的狀態開始。
完善錯誤處理: 對各種可能的錯誤進行處理,例如通信超時、APDU響應錯誤等,并記錄錯誤信息以便分析。

修改后的代碼:


#include <reg51.h>

// ... 其他代碼

#define DELAY_TIME 100  // 延時時間,單位ms

void main() {
    // ... 其他代碼

    while(1) {
        // 尋卡、防碰撞、選卡
        // ...

        if (PcdSelectOk) {
            FMstatus = pro_reset(out_data, tt);
            if (MI_OK == FMstatus) {
                // 重置錯誤標志
                errorFlag = 0;

                // 選擇MF主目錄
                st = FM1208_SelectFile(File_3F00, g_cReceBuf, tt);
                printf("FM1208_SelectFile,st=0x%x\r\n", st);

                if (st == 0x9000) {
                    FMstatus = MI_OK;
                    // 成功,執行其他操作
                    PcdHalt();
                    delay(DELAY_TIME);  // 延時
                } else {
                    FMstatus = MI_ERR;
                    errorFlag = 1;  // 設置錯誤標志
                    // 處理錯誤
                }
            }
        }
    }
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av资源中文在线天堂 | 国产高清自拍视频在线观看 | 国产精品一区二区视频 | 国产免费一区二区三区网站免费 | 亚洲自拍一区在线观看 | 久久亚洲国产 | 91久久精品 | 天天干天天玩天天操 | 国产视频精品在线观看 | 中文字幕加勒比 | 欧美精品一区二区三区在线播放 | 国产精品久久影院 | 国产成人av免费看 | 91精品国产一区二区三区 | 有码在线 | 色婷婷精品国产一区二区三区 | 久久精品毛片 | 黄色一级网 | 国产精品成人一区二区三区夜夜夜 | 国产精品乱码一区二三区小蝌蚪 | 日韩在线电影 | 99re视频在线| 日韩在线精品 | 在线观看日本网站 | 视频一区二区在线观看 | 久久成人免费 | 龙珠z在线观看 | 亚洲精品日韩一区二区电影 | 天天拍天天插 | 日日噜噜噜夜夜爽爽狠狠视频, | 九九精品在线 | 国产一区二区三区四区三区四 | 精品久久不卡 | 欧美精品在欧美一区二区 | 国产精品自拍视频 | 色综合久久久 | 日韩中文一区二区三区 | 日韩综合在线视频 | 狠狠干在线 | 免费a级毛片在线播放 | 欧美日韩一卡 |