⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mffc632.c

📁 很强的射频卡reader源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
			else if((resp[1] == 1) && (resp[2] == 0x14))		status = TI_Block_lockunsucess;
			else if((resp[1] == 1) && (resp[2] == 0x01))		status = TI_Command_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
			else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
			else status = TI_Revdata_Err;
		}
	}	
	return status;

}
/////////////////////////////////////////////////////////////////////
//		ISO15693 Select 
/////////////////////////////////////////////////////////////////////
char ISO15693_Select (unsigned char flags, 
                      unsigned char *uid, 
                      unsigned char *resp)
{
	unsigned char idata status;
	unsigned char idata txdatalength;
	unsigned char idata txbuffer[10];
		
	txbuffer[0] = flags | 0x22;
	txbuffer[1] = ISO15693_SELECT;

 	for(txdatalength=0;txdatalength<8;txdatalength++)
	{
		txbuffer[txdatalength+2] = *uid;
		uid++;
	}
	txdatalength = 10;

	status = ISO15693_Transceive(txbuffer, txdatalength, resp);
	
	if (status == TI_OK)
	{

		if((resp[0] == 1) && (resp[1] == 0))				
		{
			status = TI_NO_ERR;
		}
		else	
			status = TI_Revdata_Err;

	}
	return status;

}

/////////////////////////////////////////////////////////////////////
//		ISO15693 Get nultiple Block security status 
/////////////////////////////////////////////////////////////////////
char ISO15693_Get_Multiple_Block_Security(unsigned char flags, 
                                          unsigned char *uid, 
                                          unsigned char blnr,
                                          unsigned char nbl, 
                                          unsigned char *resp)
{
	unsigned char idata status;
	unsigned char idata txdatalength;
	unsigned char idata txbuffer[12];

	if(nbl)
	{
		nbl--;
	}

	if(nbl < 0) return(I1_WRONGPARAM);

	txbuffer[0] = flags | 0x02;
	txbuffer[1] = ISO15693_GET_MULTIPLE_BLOCK_SECURITY;	

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;

	txbuffer[txdatalength] = blnr;
   	txdatalength++;
	txbuffer[txdatalength] = nbl;
	txdatalength += 1;

	status = ISO15693_Transceive(txbuffer, txdatalength, resp);
	
	if (status == TI_OK)
	{
		
		if(resp[0] != 2)
		{
			status = TI_NO_ERR;
		}
		else	
		{	
			if(resp[2] <= 1)									status = TI_NO_ERR;
//			if((resp[1] == 1) && (resp[2] == 0x12))				status = TI_Blocklocked;
			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
//			else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
//			else if((resp[1] == 1) && (resp[2] == 0x01))		status = TI_Command_unsurport;
			else status = TI_Revdata_Err;
		}
	}
//	status = TI_NO_ERR;
	return status;
}

////////////////////////////////////////////////////////////////////
//		ISO15693 Lock AFI 
/////////////////////////////////////////////////////////////////////
char ISO15693_Lock_AFI (unsigned char flags, 
                        unsigned char *uid, 
                        unsigned char *resp)
{
	unsigned char idata txdatalength, status;
	unsigned char idata txbuffer[10];
		
	txbuffer[0] = flags | 0x02; 
	txbuffer[1] = ISO15693_LOCK_AFI;

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;

	status = ISO15693_Transceive(txbuffer, txdatalength, resp);
	
	if (status == TI_OK)
	{
		if((resp[0] == 1) && (resp[1] == 0))						status = TI_NO_ERR;
		else
		{
			if((resp[1] == 1) && (resp[2] == 0x11))				status = TI_Blocklocked;
//			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
			else if((resp[1] == 1) && (resp[2] == 0x14))		status = TI_Block_lockunsucess;
			else if((resp[1] == 1) && (resp[2] == 0x01))		status = TI_Command_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
			else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
			else status = TI_Revdata_Err;
		}
	}

	return status;

}

/////////////////////////////////////////////////////////////////////
//		ISO15693  Reset To Ready
/////////////////////////////////////////////////////////////////////
char ISO15693_Reset_To_Ready (unsigned char flags, 
                              unsigned char *uid, 
                              unsigned char *resp)
{
	unsigned char idata txdatalength, status;
	unsigned char idata txbuffer[10];
		
	txbuffer[0] = flags | 0x02;
	txbuffer[1]= ISO15693_RESET_TO_READY;

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;
				
	status = ISO15693_Transceive(txbuffer, txdatalength, resp);

	if (status == TI_OK)
	{
		if((resp[0] == 1) && (resp[1] == 0)) 					status = TI_NO_ERR;
		else
		{
//			if((resp[1] == 1) && (resp[2] == 0x11))				status = TI_Blocklocked;
//			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
//			else if((resp[1] == 1) && (resp[2] == 0x14))		status = TI_Block_lockunsucess;
			if((resp[1] == 1) && (resp[2] == 0x01))				status = TI_Command_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
	//		else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
			else status = TI_Revdata_Err;
		}
	}
	return status;
}

/////////////////////////////////////////////////////////////////////
//		ISO15693  Write AFI
/////////////////////////////////////////////////////////////////////
char ISO15693_Write_AFI (unsigned char flags, 
                         unsigned char *uid, 
                         unsigned char AFI,
                         unsigned char *resp)
{
	unsigned char idata txdatalength, status;
	unsigned char idata txbuffer[11];

	txbuffer[0] = flags | 0x02;
	txbuffer[1] = ISO15693_WRITE_AFI;

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;

	txbuffer[txdatalength] = AFI;

	txdatalength += 1;

	status = ISO15693_Transceive(txbuffer, txdatalength,resp);
	
	if (status == TI_OK)
	{
		if((resp[0] == 1) && (resp[1] == 0)) 					status = TI_NO_ERR;
		else
		{
			if((resp[1] == 1) && (resp[2] == 0x12))				status = TI_Blocklocked;
//			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
//			else if((resp[1] == 1) && (resp[2] == 0x14))		status = TI_Block_lockunsucess;
			else if((resp[1] == 1) && (resp[2] == 0x01))		status = TI_Command_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
			else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
			else status = TI_Revdata_Err;
		}
	//	status = TI_NO_ERR;
	}
	return status;

}

/////////////////////////////////////////////////////////////////////
//		ISO15693 Stay Quiet
/////////////////////////////////////////////////////////////////////
char ISO15693_Stay_Quiet (unsigned char flags, 
                          unsigned char *uid, 
                          unsigned char *resp)
{
	unsigned char idata status,txdatalength;
	unsigned char idata txbuffer[10]; 
		
	txbuffer[0] = flags | 0x22;
	txbuffer[1] = ISO15693_STAY_QUIET;

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;

	status = ISO15693_Transceive(txbuffer, txdatalength,resp);

	if (status == I2_NO_TAG)			status = TI_NO_ERR;

	return status;

}

/////////////////////////////////////////////////////////////////////
//		ISO15693  Write DSFID
/////////////////////////////////////////////////////////////////////
char ISO15693_Write_DSFID (unsigned char flags, 
                           unsigned char *uid, 
                           unsigned char DSFID,
                           unsigned char *resp)
{
	unsigned char idata txdatalength, status;
	unsigned char idata txbuffer[11];  
		
	txbuffer[0] = flags | 0x02;
	txbuffer[1] = ISO15693_WRITE_DSFID;

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;

	txbuffer[txdatalength] = DSFID;

	txdatalength += 1;

	status = ISO15693_Transceive(txbuffer, txdatalength, resp);
	
	if (status == TI_OK)
	{
		if((resp[0] == 1) && (resp[1] == 0)) 					status = TI_NO_ERR;
		else
		{
			if((resp[1] == 1) && (resp[2] == 0x12))				status = TI_Blocklocked;
//			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
//			else if((resp[1] == 1) && (resp[2] == 0x14))		status = TI_Block_lockunsucess;
			else if((resp[1] == 1) && (resp[2] == 0x01))		status = TI_Command_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
			else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
			else status = TI_Revdata_Err;
		}
	}

	return status;

}

/////////////////////////////////////////////////////////////////////
//		ISO15693 Lock DSFID 
/////////////////////////////////////////////////////////////////////
char ISO15693_Lock_DSFID (unsigned char flags, 
                          unsigned char *uid, 
                          unsigned char *resp)
{
	unsigned char idata txdatalength, status;
	unsigned char idata txbuffer[10];
		
	txbuffer[0] = flags | 0x02;
	txbuffer[1] = ISO15693_LOCK_DSFID;

	if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag 
				   // request flags & 0x10 - Selectflag request
	{
 		for(txdatalength=0;txdatalength<8;txdatalength++)
		{
			txbuffer[txdatalength+2] = *uid;
			uid++;
		}
		txdatalength = 10;
	}
	else
		txdatalength = 2;

	status = ISO15693_Transceive(txbuffer, txdatalength, resp);
	
	if (status == TI_OK)
	{
		if((resp[0] == 1) && (resp[1] == 0)) 					status = TI_NO_ERR;

		else
		{
			if((resp[1] == 1) && (resp[2] == 0x11))				status = TI_Blocklocked;
//			else if((resp[1] == 1) && (resp[2] == 0x10))		status = TI_Block_notexist;
//			else if((resp[1] == 1) && (resp[2] == 0x14))		status = TI_Block_lockunsucess;
			else if((resp[1] == 1) && (resp[2] == 0x01))		status = TI_Command_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x02))		status = TI_Commandformat_err;
			else if((resp[1] == 1) && (resp[2] == 0x03))		status = TI_Option_unsurport;
			else if((resp[1] == 1) && (resp[2] == 0x0f))		status = TI_Unkown_err;
			else status = TI_Revdata_Err;
		}
	}
	return status;
}
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -