欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: RC522讀取7字節M1卡的UID遇到的問題 [打印本頁]

作者: HelloPan111    時間: 2020-9-29 13:40
標題: RC522讀取7字節M1卡的UID遇到的問題
現在的情況是:
   4字節的卡能正確尋到卡并能讀取到UID,7字節能讀取到前3字節,利用二級防沖撞讀取后四字節出錯。具體表現為:讀取RC522寄存器超時,說明RC522沒有響應這個命令。
   想請教有沒有這方面經驗的壇友可以解答下?我的做法是二級防沖撞和一級防沖撞的操作一樣,包括寄存器的配置與發送的字節,唯一的改變就是將防沖撞命令從0x93改為0x95.
  1. char PcdAnticoll(unsigned char *pSnr)
  2. {
  3.     char status;
  4.     unsigned char i,snr_check=0;
  5.     unsigned int  unLen;
  6.     unsigned char ucComMF522Buf[MAXRLEN];
  7.    

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

  11.     ucComMF522Buf[0] = PICC_ANTICOLL1; //卡片防沖突命令
  12.     ucComMF522Buf[1] = 0x20;

  13.     status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);//與卡片通信

  14.     if (status == MI_OK)    //通信成功,讀出卡的UID
  15.     {
  16.              for (i=0; i<4; i++)
  17.          {   
  18.              *(pSnr+i)  = ucComMF522Buf[i];
  19.              snr_check ^= ucComMF522Buf[i];
  20.          }
  21.          if (snr_check != ucComMF522Buf[i])
  22.          {   status = MI_ERR;    }
  23.     }
  24.    
  25.     SetBitMask(CollReg,0x80);
  26.     return status;
  27. }
復制代碼



作者: szb314    時間: 2022-1-12 13:21
參考一下這個 https://www.nxp.com/docs/en/application-note/AN10927.pdf




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1