M1流程

M1流程
		if(0x08 == *bSak)
		{
			printf("开始M1流程\r\n");
			status = phpalI14443p3a_GetSerialNo(&I14443p3a, bUid,&bLength) ;//获得UID 雷同上面的 可以不要这一步
				if(PH_ERR_SUCCESS == status)
					{	for(i=0;i<bLength;i++)	printf("%02X ",bUid[i]);printf("\r\n");}
				else
					printf("获取UID失败\n");
 
		
			status = phpalMifare_MfcAuthenticate(&palMifare,0, PHPAL_MIFARE_KEYA,Key,bUid);
				if(PH_ERR_SUCCESS == status)		printf("认证成功\n\n");
				else						                printf("认证失败\n");	
		
//这个函数不能有 违背流程了
//		 status = phalMfc_Authenticate(&alMfc,0,PHPAL_MIFARE_KEYA,0,0,bUid,bLength);
//		 if(PH_ERR_SUCCESS == status)
//				printf("认证成功!\n\n");
//	   else
//			  printf("认证失败!\n");	

		 
		 status = phalMfc_Read(&alMfc,0,Rout);
		  if(PH_ERR_SUCCESS == status)
			{printf("0块读取成功") ;for(i=0;i<16;i++) printf("%02X ",Rout[i]); printf("\r\n");}
		  else  printf("0块读取失败!\n");	
			
			
			status = phalMfc_Write(&alMfc,2,Rout);	
			 if(PH_ERR_SUCCESS == status)		    printf("写入成功 0块和2块内容一样了\r\n");
		   else			  printf("写入失败!\n");	
			 
				 
			status = phpalI14443p3a_HaltA  (&I14443p3a);  //挂起卡片 大有用途!!
			if(PH_ERR_SUCCESS == status)	printf("挂起卡片\n\n");
			else 					printf("挂起卡片失败\n");	
		

		}

猜你喜欢

转载自blog.csdn.net/weixin_42381351/article/details/85281128
m1