RC522无法读写NXP原装S50卡
我用RC522做了一个板子,单片机用的STC12LE5616,读写复旦的S50钥匙卡没问题,但是读写NXP的S50卡大卡就不行,不知道是什么原因。代码都是在论坛里找的示例程序修改过来的,在程序里面加了一些串口打印输出,发现两种卡在读卡的时候,调用PcdComMF522通信函数时,if (Command == PCD_TRANSCEIVE)
{ SetBitMask(BitFramingReg,0x80);}
// i = 600;//根据时钟频率调整,操作M1卡最大等待时间25ms
i = 1000;
do
{
n = ReadRawRC(ComIrqReg);
TxData_com(n); 在这里我把n值打印出来
i--;
}
while ((i!=0) && !(n&0x01) && !(n&waitFor));
我把n的值从串口打印出来,发现能读的卡会执行三次do,打印出n分别为04 44 64,不能读的卡只执行了两次do,打印出来的n分别为04 64。
两种卡都是S50卡,差别就是一个原装一个副厂,一个是大卡,一个是钥匙扣卡。副厂的能读写,原装的就不行了。实在是找不出原因来,希望大家能帮帮忙。 跟你一个现象,但我只有打卡,读出来的值是04 64 你们没说明白。
S50是一个标准,没有大小。
如果是有类型能读有的不能是,是程序的事。
如果钥匙扣的,和标准大小不同的有的能有的不能则是电路和卡的因素。据说小卡与标准有区别。
还有国人独有的上海卡,只是加密稍有不同。 很可能是射频IC内的参数设置不能,看一下输出阻抗部分!
页:
[1]