已经弄了两天了,SPI没有问题,自收自发OK的.
无法寻卡吧,属于.
代码:
RC522_2452.zip
(55.63 KB, 下载次数: 25)
2013-6-10 16:53 上传
点击文件名下载附件
关键代码:
- void CtrlRC522(){
- if( PcdRequest( PICC_REQALL, &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
- {
- if( PcdRequest( PICC_REQALL, &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
- {
- return;
- }
- }
- if( PcdAnticoll( &CardRevBuf[2] ) != MI_OK ) //防冲撞,返回卡的序列号 4字节
- {
- return;
- }
- if( PcdSelect( &CardRevBuf[2] ) != MI_OK )//选卡
- {
- return;
- }
- _bis_SR_register(LPM4_bits);
- return;
- }
复制代码- char PcdRequest(unsigned char req_code,unsigned char *pTagType)
- {
- char status;
- unsigned int unLen;
- unsigned char ucComMF522Buf[MAXRLEN];
- ClearBitMask(Status2Reg,0x08);
- WriteRawRC(BitFramingReg,0x07);
- SetBitMask(TxControlReg,0x03);
- ucComMF522Buf[0] = req_code;
- status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);
- if ((status == MI_OK) && (unLen == 0x10))
- {
- *pTagType = ucComMF522Buf[0];
- *(pTagType+1) = ucComMF522Buf[1];
- }
- else
- {
- status = MI_ERR;
- }
- return status;
- }
复制代码或者有做过RC522的大神能给个参考么,我这个是用网上流传的C51版本原封不动移植过来的,或者求个查错思路.
此帖出自
小平头技术问答
一周热门 更多>