rc522读卡器模块在stc89c52上实现读写数据在串口助手上显示,读出来的数据为什么都是第一个扇区的

时间:2022-09-04 20:06:13
rc522读卡器模块在stc89c51上实现读写数据在串口助手上显示,读出来的数据为什么都是第一个扇区的?
部分代码:
/////////////////////////////////////////////////////////////////////
//功    能:读取M1卡一块数据
//参数说明: addr[IN]:块地址
//          pData[OUT]:读出的数据,16字节
//返    回: 成功返回MI_OK
///////////////////////////////////////////////////////////////////// 
char PcdRead(unsigned char addr,unsigned char *pData)
{
    char status;
    unsigned int  unLen;
    unsigned char i,ucComMF522Buf[MAXRLEN]; 

    ucComMF522Buf[0] = PICC_READ;
    ucComMF522Buf[1] = addr;
    CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);
   
    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);
    if ((status == MI_OK) && (unLen == 0x90))
 //   {   memcpy(pData, ucComMF522Buf, 16);   }
    {
        for (i=0; i<16; i++)
        {    *(pData+i) = ucComMF522Buf[i];   }
    }
    else
    {   status = MI_ERR;   }
    
    return status;
}

9 个解决方案

#1


我想读取其他扇区的数据怎么读取?块的绝对地址是什么意思,怎么调用?读取的数据都是第一扇区的块数据,怎么读取其他扇区的块数据?

#2


设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。

#3


引用 2 楼 uid123 的回复:
设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
您能说的详细一点吗。

#4


这个问题  有没有demo 参考一下demo 然后再进行处理 51的 rfid卡 应该蛮多的 资料。

#5


调的是别人封好的函数接口?那要看封好的函数接口具体做了些什么!

#6


引用 3 楼 qaqawer 的回复:
Quote: 引用 2 楼 uid123 的回复:

设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
您能说的详细一点吗。

你这个最好用UCOS操作系统或者是Ubuntu内核的Linux(Ubuntu的函数较全),这个操作系统的好处就是有访问附加存储的函数,不上os的方法就是将外部存储器的地址做映射,映射到内部存储器的后边,然后接着地址(物理映射地址)访问。

#7


楼主首先去学习了解M1卡数据、密码扇区排列规则,这个跟读卡器无关。

#8


楼主解决了吗    我也碰到这个 问题了 =-=

#9


检查下源码即可知道操作了哪块地址!

#1


我想读取其他扇区的数据怎么读取?块的绝对地址是什么意思,怎么调用?读取的数据都是第一扇区的块数据,怎么读取其他扇区的块数据?

#2


设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。

#3


引用 2 楼 uid123 的回复:
设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
您能说的详细一点吗。

#4


这个问题  有没有demo 参考一下demo 然后再进行处理 51的 rfid卡 应该蛮多的 资料。

#5


调的是别人封好的函数接口?那要看封好的函数接口具体做了些什么!

#6


引用 3 楼 qaqawer 的回复:
Quote: 引用 2 楼 uid123 的回复:

设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
您能说的详细一点吗。

你这个最好用UCOS操作系统或者是Ubuntu内核的Linux(Ubuntu的函数较全),这个操作系统的好处就是有访问附加存储的函数,不上os的方法就是将外部存储器的地址做映射,映射到内部存储器的后边,然后接着地址(物理映射地址)访问。

#7


楼主首先去学习了解M1卡数据、密码扇区排列规则,这个跟读卡器无关。

#8


楼主解决了吗    我也碰到这个 问题了 =-=

#9


检查下源码即可知道操作了哪块地址!