ecomputer 发表于 2013-11-22 08:49:30

STC与FM1702SL 读卡请教

本帖最后由 ecomputer 于 2013-11-22 09:36 编辑


寻卡和认证都过了,就卡在读写扇区上,一直返回CRC错误,对照了网上多份示例代码,驱动都没有问题,请各位调试过的指导一下,主要是
MIF_Read函数中,这时总是返回if((temp & 0x08) == 0x08) return FM1702_CRCERR;错误,单片机为STC89LE54RD+/****************************************************************/
/*名称: MIF_Read */
/*功能: 该函数实现读MIFARE卡块的数值*/
/*输入: buff: 缓冲区首地址*/
/* Block_Adr: 块地址*/
/*输出: FM1702_NOTAGERR: 无卡*/
/* FM1702_PARITYERR: 奇偶校验错*/
/* FM1702_CRCERR: CRC校验错*/
/* FM1702_BYTECOUNTERR: 接收字节错误*/
/* FM1702_OK: 应答正确*/
/****************************************************************/
unsigned char MIF_READ(unsigned char *buff, unsigned char Block_Adr)
{

        unsigned char idata temp;

        SPIWrite(CRCPresetLSB,0x63);
        SPIWrite(CWConductance,0x3f);
        SPIWrite(ModConductance,0x3f);
        SPIWrite(ChannelRedundancy,0x0f);
      
        //SPIWrite(Int_Req,0x7f);   //Int_Req=0x7f;

        buff = RF_CMD_READ;
        buff = Block_Adr;
        temp = Command_Send(2, buff, Transceive);
        if(temp == 0)
        {
                return FM1702_NOTAGERR;
        }
        _nop_();

        temp = SPIRead(ErrorFlag);
        if((temp & 0x02) == 0x02) return FM1702_PARITYERR;
        if((temp & 0x04) == 0x04) return FM1702_FRAMINGERR;
        if((temp & 0x08) == 0x08) return FM1702_CRCERR;
        temp = SPIRead(FIFO_Length);
        if(temp == 0x10)
        {
                Read_FIFO(buff);
                return FM1702_OK;
        }
        else if(temp == 0x04)
        {
                Read_FIFO(buff);
                return FM1702_OK;
        }
        else
        {
                return FM1702_BYTECOUNTERR;
        }
}

sky_walker 发表于 2013-11-22 11:24:49

当时用的开发包,里面的没问题,这是从哪来的程序

ecomputer 发表于 2013-11-22 12:11:41

sky_walker 发表于 2013-11-22 11:24 static/image/common/back.gif
当时用的开发包,里面的没问题,这是从哪来的程序

网上找的啊,兄弟能不能把你的程序共享一下

ltby00 发表于 2013-12-17 17:08:36

结果如何了?   楼上

wx-ta 发表于 2013-12-23 22:29:50

我用522能读取正规m1卡,但是读两张一块钱的s50卡确只能过去id.不能读取块信息,但是能通过认证,怀疑是卡的问题
页: [1]
查看完整版本: STC与FM1702SL 读卡请教