• 嵌入式


    //******************************************************************/
    //功    能:寻卡                                                    /
    //参数说明: req_code[IN]:寻卡方式                                      /
    //                0x52 = 寻感应区内所有符合14443A标准的卡          /
    //                0x26 = 寻未进入休眠状态的卡                       /
    //          pTagType[OUT]:卡片类型代码                             /
    //                0x4400 = Mifare_UltraLight                           /
    //                0x0400 = Mifare_One(S50)                            /
    //                0x0200 = Mifare_One(S70)                            /
    //                0x0800 = Mifare_Pro(X)                              /
    //                0x4403 = Mifare_DESFire                             /
    //返    回: 成功返回MI_OK                                          /
    //******************************************************************/
    char PcdRequest(unsigned char req_code,unsigned char *pTagType)
    {
      char status                                        ;  
      unsigned int  unLen                                ;
      unsigned char ucComMF522Buf[MAXRLEN]           ; 
    
      ClearBitMask(Status2Reg,0x08)                      ;
      WriteRawRC(BitFramingReg,0x07)                   ;
      SetBitMask(TxControlReg,0x03)                     ;
     
      ucComMF522Buf[0] = req_code                        ;
    
      status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,
                           1,ucComMF522Buf,&unLen       );
      if ((status == MI_OK) && (unLen == 0x10))
      {    
        *pTagType     = ucComMF522Buf[0]                 ;
        *(pTagType+1) = ucComMF522Buf[1]                 ;
      }
      else
        status = MI_ERR                                  ;
      return status                                      ;
    }     
    
    //******************************************************************/
    //功    能:防冲撞                                                  /
    //参数说明: pSnr[OUT]:卡片序列号,4字节                              /
    //返    回: 成功返回MI_OK                                          /
    //******************************************************************/
    
    char PcdAnticoll(unsigned char *pSnr)
    {
        char status;
        unsigned char i,snr_check=0;
        unsigned int  unLen;
        unsigned char ucComMF522Buf[MAXRLEN]; 
        
        ClearBitMask(Status2Reg,0x08);
        WriteRawRC(BitFramingReg,0x00);
        ClearBitMask(CollReg,0x80);
     
        ucComMF522Buf[0] = PICC_ANTICOLL1;
        ucComMF522Buf[1] = 0x20;
       Status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);
    
        if (status == MI_OK)
        {
        	 for (i=0; i<4; i++)
             {   
                 *(pSnr+i)  = ucComMF522Buf[i];
                 snr_check ^= ucComMF522Buf[i];
             }
             if (snr_check != ucComMF522Buf[i])
             {   status = MI_ERR;    }
        }
        
        SetBitMask(CollReg,0x80);
        return status;
    }
    

      

  • 相关阅读:
    创建一个简单的vue.js项目
    安装VM
    安装postgreSQL
    读取pgsql扫描失败
    adb install 安装apk时报错Failure [INSTALL_FAILED_TEST_ONLY]解决方法
    「工具分享」Checker Script for Linux
    「V 曲闲谈」《万物与我同归于寂》——终与始
    Note / Solution Set 「Binomial Sum」两道例题
    Solution Set 「NOIP Simu.」20221014
    Solution Set 「NOIP Simu.」20221024
  • 原文地址:https://www.cnblogs.com/galuo/p/3075813.html
Copyright © 2020-2023  润新知