#include <intrins.h>
#include "reg52.h"
#include "main.h"
#include "mfrc522.h"
#include <string.h>
#define MAXRLEN 18
/******* RxModeReg 默认为 106kbit/s 的通信速率 ******************/
/***********************************************************************
* 功 能:寻卡
* 参数说明: 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];
// unsigned char xTest ;
ClearBitMask(Status2Reg,0x08); // 清 MFCrypto1On,只能通过软件清零,该位用
来指示 Crypto1 的接通情况,MFAuthent(验证密钥)命令成功执行后置 1
WriteRawRC(BitFramingReg,0x07); // TxLastBits([2-0])表示发送的最后一个字节
7 位发送
// xTest = ReadRawRC(BitFramingReg);
// if(xTest == 0x07 )
// { LED_GREEN =0 ;}
// else {LED_GREEN =1 ;while(1){}}
SetBitMask(TxControlReg,0x03); // TxControlReg 低 2 位(Tx2RFEn 和 Tx1RFEn
)置 1,Tx2 和 Tx1 管脚输出信号调制在 13.56MHz 的载波上
ucComMF522Buf[0] = req_code;
status =
PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //
PCD_TRANSCEIVE == 0x0c 发送并接收数据
// if(status == MI_OK )
// { LED_GREEN =0 ;}