教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

射频 rc500代码完全注释(8)

来源:网络收集 时间:2026-07-01
导读: 908.if(status/*密钥出错标志*/ 911.} 912.else 913.{ 914.status=MI_AUTHERR;/*认证出错标志*/ 915.} 916.} 917.else/*载入密钥成功*/ 918.{/*三轮认证开始*/ 919. 920.SerBuffer[0]=auth_mode; 921.SerBuffer[1]=

908.if(status&0x40) 909.{

910.status=MI_KEYERR;/*密钥出错标志*/ 911.} 912.else 913.{

914.status=MI_AUTHERR;/*认证出错标志*/ 915.}

916.}

917.else/*载入密钥成功*/ 918.{/*三轮认证开始*/ 919.

920.SerBuffer[0]=auth_mode; 921.SerBuffer[1]=block;

922.memcpy(SerBuffer+2,snr,4); 923.ResetInfo(MInfo);

924.MInfo.nBytesToSend=6;

925./*上面为认证命令1的入口参数?卡型?要访问的数据块?序列号?相关流动信息?要发送的字节数*/

926.if((status=M500PcdCmd(PCD_AUTHENT1,SerBuffer,&MInfo))==MI_OK) 927.{

928.if(ReadIO(RegSecondaryStatus)&0x07) 929.{

930.status=MI_BITCOUNTERR;/*认证不成功?置比特计数标志*/ 931.} 932.else 933.{

934.ResetInfo(MInfo);

935.MInfo.nBytesToSend=0;

936./*上面为认证命令2的入口参数?相关流动信息?要发送的字节数*/ 937.if((status=M500PcdCmd(PCD_AUTHENT2, 938.SerBuffer,

939.&MInfo))==MI_OK) 940.{

941.if(ReadIO(RegControl)&0x08) 942.{

943.status=MI_OK;/*认证成功?RC500会自动置CRYTON=1*/ 944.} 945.else 946.{

947.status=MI_AUTHERR;/*认证不成功?置认证错标志*/ 948.} 949.} 950.} 951.} 952.}

953.returnstatus;/*返回状态值*/ 954.} 955.

956.//////////////////////////////////////////////////////////////// 957.//Readthemifarecard

958./*读卡?一次读出16字节?一整块BLOCK?*/

959.//////////////////////////////////////////////////////////////// 960.charM500PiccRead(unsignedcharaddr,unsignedchar*_data)

961.{/*addr=卡的EEROM数据块地址?_data=读出数据的存放区首址*/ 962.charidatastatus=MI_OK; 963.charidatatmp=0; 964.

965.FlushFIFO();/*清缓冲区*/ 966.

967.M500PcdSetTmo(3);

968.WriteIO(RegChannelRedundancy,0x0F);/*16比特CRC检测?奇校验*/ 969.ResetInfo(MInfo);

970.SerBuffer[0]=PICC_READ; 971.SerBuffer[1]=addr; 972.MInfo.nBytesToSend=2;

973./*上面为读卡命令的入口参数?读指令?块地址?发送字节数*/ 974.status=M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);/*读卡*/ 975.

976.if(status!=MI_OK)/*读卡命令执行不成功*/ 977.{

978.if(status!=MI_NOTAGERR) 979.{

980.if(MInfo.nBitsReceived==4) 981.{

982.SerBuffer[0]&=0x0f;

983.if((SerBuffer[0]&0x0a)==0) 984.{

985.status=MI_NOTAUTHERR;/*认证不成功?或说无权访问*/ 986.} 987.else 988.{

989.status=MI_CODEERR;/*编码错误*/ 990.} 991.} 992.}

993.memcpy(_data,\执行不成功则返回00*/ 994.}

995.else/*读卡命令执行成功*///ResponseProcessing 996.{

997.if(MInfo.nBytesReceived!=16)/*如果返回的字节个数不是16*/ 998.{

999.status=MI_BYTECOUNTERR;/*则置字节计数错*/

1000.memcpy(_data,\返回00*/ 1001.}

1002.else/*如果返回的字节个数是16*/

射频 rc500代码完全注释(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/564818.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)