请教FM1702无法读卡的原因?(附RFID资料,给需要的人)

2020-02-05 09:21发布

程序运行到1702初始化的时候有一句
        while((temp = SPIRead(Command)) != 0)                        /* 等待Command = 0,FM1702复位成功 */
        {
        ;//        _nop_();
        }
然后程序就卡住了。SPIRead()貌似每次都不为零,有几种可能的原因呢?
软件是直接从别的地方移植过来的,我只修改了管脚定义而已。莫非硬件有问题?

还有就是请教一下
unsigned char SPIRead(char reg_ad)
{   char temp;
    RF_SCK=0;
     _nop_();
     _nop_();
    RF_NSS=0;
    reg_ad <<= 1;
    reg_ad |= 0x80;
    spi_byte_transceive(reg_ad);
    temp=spi_byte_transceive(0x00);
    RF_NSS=1;
    return (temp);
}

void SPIWrite(char reg_ad,char reg_data)
{   
    RF_SCK=0;
    reg_ad <<= 1;
    RF_NSS=0;
    reg_ad &= 0x7F;
    spi_byte_transceive(reg_ad);
    spi_byte_transceive(reg_data);
    RF_NSS=1;
    return;
}

在上面两个函数中,为什么reg_ad要进行变换?
请大家多多来鄙视吧。
附我现在用的刷卡机程序和图纸。

刷卡程序使用STC12C5A60S和KEILV4,FM1702NLourdev_573191.rar(文件大小:99K) (原文件名:刷卡程序使用STC12C5A60S和KEILV4.rar)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。