完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//******************************************************************/
//功 能:读RC522寄存器 //参数说明:Address[IN]:寄存器地址 //返 回:读出的值 //******************************************************************/ unsigned char ReadRawRC(unsigned char Address) { unsigned char i, ucAddr ; unsigned char ucResult=0 ; NSS522_0 ; SCK522_0 ; ucAddr = ((Address<<1)&0x7E)|0x80 ; for(i=8;i>0;i--) { if((ucAddr&0x80)==0x80) SI522_1 ; else SI522_0 ; SCK522_1 ; ucAddr <<= 1 ; SCK522_0 ; } for(i=8;i>0;i--) { SCK522_0 ; SCK522_1 ; ucResult <<=1 ; ucResult |= SO522 ; SCK522_0 ; } SCK522_0 ; NSS522_1 ; return ucResult ; } //******************************************************************/ //功 能:写RC522寄存器 //参数说明:Address[IN]:寄存器地址 // value[IN]:写入的值 //******************************************************************/ /* void WriteRawRC(unsigned char Address, unsigned char value) { unsigned char i, ucAddr ; NSS522_0 ; SCK522_0 ; ucAddr = ((Address<<1)&0x7E) ; for(i=8;i>0;i--) { if ((ucAddr&0x80)==0x80) { SI522_1; } else { SI522_0; } SCK522_1; ucAddr <<= 1; SCK522_0; } for(i=8;i>0;i--) { if ((value&0x80)==0x80) { SI522_1; } else { SI522_0; } SCK522_1; value <<= 1; SCK522_0; } SCK522_0; NSS522_1; } */ |
|
相关推荐
6个回答
|
|
这个是我一直用读卡程序,时钟是8M,你可以参考一下:
///////////////////////////////////////////////////////////////////// //功 能:读RC522寄存器 //参数说明:Address[IN]:寄存器地址 //返 回:读出的值 ///////////////////////////////////////////////////////////////////// unsigned char ReadRawRC(unsigned char Address) { unsigned char i, ucAddr; unsigned char ucResult=0;  3OUT&=~(MF522_SCK | MF522_NSS); //MF522_SCK = 0;F //MF522_NSS = 0; ucAddr = ((Address<<1)&0x7E)|0x80; for(i=8;i>0;i--) { if(ucAddr&0x80)  3OUT|=MF522_MOSI; else  3OUT&=~MF522_MOSI; __delay_cycles(8);  3OUT|=MF522_SCK; // MF522_SCK = 1; ucAddr <<= 1; __delay_cycles(8);  3OUT&=~MF522_SCK; //MF522_SCK = 0; }  3DIR&=~MF522_MISO; for(i=8;i>0;i--) {  3OUT|=MF522_SCK; //MF522_SCK = 1; ucResult <<= 1; __delay_cycles(8); ucResult|=((P3IN&MF522_MISO)==MF522_MISO); //ucResult|=(bit)MF522_MISO;  3OUT&=~MF522_SCK; //MF522_SCK = 0; __delay_cycles(8); }  3OUT|=MF522_NSS; //MF522_NSS = 1;  3OUT|=MF522_SCK; //MF522_SCK = 1; return ucResult; } ///////////////////////////////////////////////////////////////////// //功 能:写RC522寄存器 //参数说明:Address[IN]:寄存器地址 // value[IN]:写入的值 ///////////////////////////////////////////////////////////////////// void WriteRawRC(unsigned char Address, unsigned char value) { unsigned char i, ucAddr; P3OUT&=~MF522_SCK; //MF522_SCK = 0; P3OUT&=~MF522_NSS; //MF522_NSS = 0; ucAddr = ((Address<<1)&0x7E); for(i=8;i>0;i--) { if(ucAddr&0x80) P3OUT|=MF522_MOSI; else P3OUT&=~MF522_MOSI; __delay_cycles(10); P3OUT|=MF522_SCK; //MF522_SCK = 1; ucAddr <<= 1; P3OUT&=~MF522_SCK; //MF522_SCK = 0; __delay_cycles(8); } for(i=8;i>0;i--) { if(value&0x80) P3OUT|=MF522_MOSI; else P3OUT&=~MF522_MOSI; P3OUT|=MF522_SCK; //MF522_SCK = 1; __delay_cycles(10); value <<= 1; P3OUT&=~MF522_SCK; //MF522_SCK = 0; __delay_cycles(8); } P3OUT|=MF522_NSS; //MF522_NSS = 1; P3OUT|=MF522_SCK; //MF522_SCK = 1; } 还有一个地方就是这个函数,里面有一个等待时间,时间太短一样不能正确读取到卡 ///////////////////////////////////////////////////////////////////// //功 能:通过RC522和ISO14443卡通讯 //参数说明:Command[IN]:RC522命令字 // pInData[IN]:通过RC522发送到卡片的数据 // InLenByte[IN]:发送数据的字节长度 // pOutData[OUT]:接收到的卡片返回数据 // *pOutLenBit[OUT]:返回数据的位长度 ///////////////////////////////////////////////////////////////////// char PcdComMF522(unsigned char Command, unsigned char *pInData, unsigned char InLenByte, unsigned char *pOutData, unsigned int *pOutLenBit) |
|
|
|
帮顶。。。。。
|
|
|
|
求指导啊。。。
|
|
|
|
会不会是时钟设置有问题?明天把时钟调到8M晶振试试。。。
|
|
|
|
好的,谢谢
|
|
|
|
楼主是如何解决的啊
|
|
|
|
只有小组成员才能发言,加入小组>>
3051个成员聚集在这个小组
加入小组2960 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3670 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2360 浏览 1 评论
4823 浏览 1 评论
2585 浏览 1 评论
1359浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3673浏览 2评论
2962浏览 1评论
1554浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 17:20 , Processed in 1.503815 second(s), Total 89, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号