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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 716|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

有無(wú)大佬解答一下RC522操作復(fù)旦微FM1208CPU卡的疑問(wèn)

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 50 黑幣 回復(fù)本帖可獲得 5 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:777254 發(fā)表于 2024-9-7 16:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1.尋卡,防碰撞,選卡,復(fù)位轉(zhuǎn)入APDU命令,選擇MF主目錄成功后,我執(zhí)行讓卡休眠。然后把卡拿開,重新刷卡會(huì)在選擇MF主目錄這里失敗。2.這樣循環(huán)重復(fù)成功,失敗,成功,失敗。。。。。。
代碼如下:
1.先尋卡,防碰撞,選卡
2.上述成功后,就執(zhí)行如下代碼:        FMstatus=pro_reset(out_data,tt);//轉(zhuǎn)入APDU命令格式CPU卡復(fù)位操作,成功后才能往下操作//
        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.成功后就執(zhí)行PcdHalt();讓卡休眠。


串口打印現(xiàn)象如下:
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.第二次就失敗,然后就是成功,失敗,成功,失敗循環(huán)。。。。
有知道是怎么回事嗎?





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:404160 發(fā)表于 2024-9-10 14:36 | 只看該作者
優(yōu)化代碼邏輯:

增加延時(shí): 在PcdHalt()后和下一次刷卡前增加適當(dāng)?shù)难訒r(shí),確保卡有足夠的時(shí)間進(jìn)入休眠和喚醒。
重置狀態(tài)變量: 在每次刷卡操作前,重置錯(cuò)誤標(biāo)志、超時(shí)計(jì)數(shù)等狀態(tài)變量,確保每次操作都是從一個(gè)干凈的狀態(tài)開始。
完善錯(cuò)誤處理: 對(duì)各種可能的錯(cuò)誤進(jìn)行處理,例如通信超時(shí)、APDU響應(yīng)錯(cuò)誤等,并記錄錯(cuò)誤信息以便分析。

修改后的代碼:


#include <reg51.h>

// ... 其他代碼

#define DELAY_TIME 100  // 延時(shí)時(shí)間,單位ms

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

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

        if (PcdSelectOk) {
            FMstatus = pro_reset(out_data, tt);
            if (MI_OK == FMstatus) {
                // 重置錯(cuò)誤標(biāo)志
                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;
                    // 成功,執(zhí)行其他操作
                    PcdHalt();
                    delay(DELAY_TIME);  // 延時(shí)
                } else {
                    FMstatus = MI_ERR;
                    errorFlag = 1;  // 設(shè)置錯(cuò)誤標(biāo)志
                    // 處理錯(cuò)誤
                }
            }
        }
    }
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久激情网 | 国产在线中文字幕 | 欧美日韩国产在线观看 | 亚洲欧美中文日韩在线v日本 | 特级特黄特色的免费大片 | 成人在线小视频 | 成人在线观看免费视频 | 成人在线观看黄 | 国产91一区 | 琪琪午夜伦伦电影福利片 | 国内精品久久精品 | 国产福利在线 | 久久高清精品 | 不卡的av在线| 亚洲精品高清视频在线观看 | 黄视频网站在线 | 午夜寂寞影院在线观看 | 99婷婷| 一区二区中文字幕 | 91精品国产欧美一区二区成人 | 中国一级特黄真人毛片免费观看 | 国产精品久久久久久久久久免费看 | 欧美一区精品 | 99精品国自产在线 | 五月天天丁香婷婷在线中 | 国产视频二区在线观看 | 日韩欧美在 | 久久久999成人 | 成人国产午夜在线观看 | 在线日韩中文字幕 | 国产精品a久久久久 | 日韩在线视频一区二区三区 | 999久久久久久久久6666 | 亚洲精品久久久9婷婷中文字幕 | 在线亚洲人成电影网站色www | 亚洲免费一 | 亚洲欧美一区二区三区国产精品 | 在线中文字幕亚洲 | 香蕉91| 一区二区免费视频 | 日日草天天干 |