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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 923|回復: 2
打印 上一主題 下一主題
收起左側

RC522如何讀取7字節的UID,附單片機代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:250869 發表于 2023-12-7 17:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近使用RC522讀取RFID卡的UID,發現網上大部分都是4字節的UID讀取,7字節很少說明,查閱資料發現是要二次防沖撞,但具體怎么操作呢,我嘗試了但是一直是防沖撞失敗。第一次是0x93、0x20 第二次是0x95、0x20  但就是第二次防沖撞失敗  求教大佬具體需要怎么操作,下面是執行部分單片機代碼
void RC522_Handel(u8 mode)
{
    u8 len = 0;
    IWDG_Feed();//喂狗
    status = PcdRequest(PICC_REQALL,CT);//尋卡

    if(status == MI_OK )//尋卡成功
    {
        if(CT[0] == 0x04 && CT[1] == 0x00)
        {
            /** M1卡 **/
            status = MI_ERR;
            status = PcdAnticoll(SN,PICC_ANTICOLL1);//防沖撞

            if (status==MI_OK)//防衝撞成功
            {
                status=MI_ERR;
                printf("UUID:%02X%02X%02X%02X\r\n",SN[0],SN[1],SN[2],SN[3]);
            }
            else
            {
                RC522_Handel(0);
            }
         }
        else if(CT[0] == 0x44 && CT[1] == 0x00)
        {
            /**  NTAG卡 **/
            printf("TYEP:%02X%02X\r\n",CT[0],CT[1]);
            status = MI_ERR;
            status = PcdAnticoll(SN,PICC_ANTICOLL1);//防沖撞
            if (status==MI_OK)//防衝撞成功
            {
                printf("UID:%02X%02X%02X",SN[1],SN[2],SN[3]);
                status = MI_ERR;
                status = PcdRequest(PICC_REQALL,CT);//尋卡
                                status = PcdRequest(PICC_REQALL,CT);//尋卡
                if(status == MI_OK)
                {
                    status = MI_ERR;
                    status = PcdAnticoll(SN1,PICC_ANTICOLL2);
                    if(status == MI_OK)//防沖撞
                        printf("%02X%02X%02X%02X\r\n",SN1[0],SN1[1],SN1[2],SN1[3]);
                    else
                    {
                                                printf("\r\n2次防沖撞失敗:%d\r\n",status);
                    }
                }
            }
            else
            {
                RC522_Handel(0);
                // TODO
            }
        }
    }
    CT[0] = 0;
    CT[1] = 0;
}



char PcdAnticoll ( u8 * pSnr ,u8 PICC_ANTICOLL)
{
    char cStatus;
    u8 uc, ucSnr_check = 0;
    u8 ucComMF522Buf [ MAXRLEN ];
    u32 ulLen;

    ClearBitMask ( Status2Reg, 0x08 );                //清MFCryptol On位 只有成功執行MFAuthent命令后,該位才能置位
    WriteRawRC ( BitFramingReg, 0x00);                //清理寄存器 停止收發
    ClearBitMask ( CollReg, 0x80 );                        //清ValuesAfterColl所有接收的位在沖突后被清除

    ucComMF522Buf [ 0 ] = PICC_ANTICOLL;        //卡片防沖突命令
    ucComMF522Buf [ 1 ] = 0x20;

    cStatus = PcdComMF522 ( PCD_TRANSCEIVE, ucComMF522Buf, 2, ucComMF522Buf, & ulLen);//與卡片通信

    if ( cStatus == MI_OK)                //通信成功
    {
        for ( uc = 0; uc < 4; uc ++ )
        {
            * ( pSnr + uc )  = ucComMF522Buf [ uc ];                        //讀出UID
            ucSnr_check ^= ucComMF522Buf [ uc ];
        }
        if ( ucSnr_check != ucComMF522Buf [ uc ] )
            cStatus = MI_ERR;
    }

    SetBitMask ( CollReg, 0x80 );

    return cStatus;

}

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

使用道具 舉報

沙發
ID:250869 發表于 2023-12-7 18:29 | 只看該作者
我曉得了  順序是一次防沖撞后  進行選卡隨后二次防沖撞
回復

使用道具 舉報

板凳
ID:250869 發表于 2023-12-7 18:30 | 只看該作者
已解決,一次尋卡防沖撞后,進行選卡,選卡成功在進行二次防沖撞(0x95)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人福利视频 | 在线中文一区 | 成年人黄色免费视频 | 免费在线观看av网站 | 成年人免费网站 | 亚州一区二区三区 | 波多野结衣在线观看一区二区三区 | 天天干夜夜操 | 狠狠av| 91传媒在线观看 | 久久久久亚洲精品 | 国产jizz女人多喷水99 | 一区二区三区视频在线 | 午夜电影网 | 亚洲国产午夜 | 日韩一二三区视频 | 亚洲国产成人精品久久久国产成人一区 | 在线一区二区三区 | av电影一区二区 | 日韩在线一区二区三区 | 精品久久一区二区三区 | 中文字幕精品一区二区三区精品 | 免费色网址 | 91免费在线| 久久精品一区 | 精品久久久久一区二区国产 | 一区二区三区视频在线 | 久久久久国产精品一区二区 | 成人免费看片网 | 欧美日韩亚洲视频 | 欧美一区二区三区在线播放 | 99re热精品视频 | 中文字幕亚洲一区二区三区 | 欧美日韩视频在线播放 | 毛片毛片毛片毛片毛片 | 国产在线精品一区二区 | 久在线视频播放免费视频 | 日韩高清三区 | 一区二区三区四区不卡视频 | 精品国产不卡一区二区三区 | 久久久久久久国产 |