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

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

来源:网络收集 时间:2026-07-01
导读: //清RC500寄存器bit /////////////////////////////////////////////////////////////////////// char ClearBitMask(unsignedcharreg,unsignedcharmask) {/*相应的寄存器?REG)?相应的屏蔽位?MASK?*/ charidatatmp=0

//清RC500寄存器bit

///////////////////////////////////////////////////////////////////////

char ClearBitMask(unsignedcharreg,unsignedcharmask) {/*相应的寄存器?REG)?相应的屏蔽位?MASK?*/ charidatatmp=0x00; tmp=ReadIO(reg);

WriteIO(reg,tmp&~mask);/*写入*/ Return 0x00; }

///////////////////////////////////////////////////////////////////////

/*清缓冲区标志?这样RC500的FIFO取就可供单片机或RC500状态机使用*/ ///////////////////////////////////////////////////////////////////////

voidFlushFIFO(void) {

SetBitMask(RegControl,0x01);/*控制寄存器地址?09H------置1?FIFOFLUSH=1)*/ }

///////////////////////////////////////////////////////////////////////

//ValueformatoperationsforMifareStandardcardICs

/*改变MIFARE1卡内部EEROM的内容?单调增加?单调减少?数据检验操作?*/

///////////////////////////////////////////////////////////////////////

charM500PiccValue(unsignedchardd_mode, unsignedcharaddr, unsignedchar*value,

unsignedchartrans_addr)

{/*VALUE:连续写入的四字节指针?TRANS_ADDR:指向的改变后的数据要存入的地址*/

Char status=MI_OK;/*SATUS:置初值*/

/*DD_MODE:三种命令模式?ADDR:指向的要改变数据单元的地址*/ M500PcdSetTmo(1);/*初始化计时器--方式1*/ ResetInfo(MInfo);/*Minfo=INFO*/

SerBuffer[0]=dd_mode;/*93h,95h,97h三种命令模式*/

SerBuffer[1]=addr;/*ADDR:指向的要改变数据单元的地址*/ MInfo.nBytesToSend=2;/*要发送的字节数*/ status=M500PcdCmd(PCD_TRANSCEIVE, SerBuffer, &MInfo);

/*执行先送后接指令后返回STATUS*/

if(status!=MI_NOTAGERR)/*MI_NOTAGERR=没有卡在此场里*/ {/*有卡在此场里*/

if(MInfo.nBitsReceived!=4)/*收到的数据不是4比特*/ {

status=MI_BITCOUNTERR;/*置收到错误的比特数目标志位*/ }

else/*收到的数据是4比特*/ {

SerBuffer[0]&=0x0f;/*取出低四位*/ switch(SerBuffer[0]) {

case0x00:

status=MI_NOTAUTHERR;/*0000=置收到错误的比特数目标志位*/ break;

case0x0a:/*1010=置命令正确执行位*/ status=MI_OK; break;

case0x01:/*0001=置数据结构错误位*/ status=MI_VALERR; break; default:

status=MI_CODEERR;/*收到NACK,发送的数据出错?CRC,PARITY?*/ break; } } }

if(status==MI_OK)

{/*TRANSCEIVE命令执行成功*/

M500PcdSetTmo(3);/*初始化计时器--方式3*/ ResetInfo(MInfo);/*Minfo=INFO*/

memcpy(SerBuffer,value,4);/*将缓冲区里放入要改变的数据*/

射频 rc500代码完全注释(3).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)