部分代码:
/////////////////////////////////////////////////////////////////////
//功 能:读取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
您能说的详细一点吗。
#4
这个问题 有没有demo 参考一下demo 然后再进行处理 51的 rfid卡 应该蛮多的 资料。
#5
调的是别人封好的函数接口?那要看封好的函数接口具体做了些什么!
#6
你这个最好用UCOS操作系统或者是Ubuntu内核的Linux(Ubuntu的函数较全),这个操作系统的好处就是有访问附加存储的函数,不上os的方法就是将外部存储器的地址做映射,映射到内部存储器的后边,然后接着地址(物理映射地址)访问。
#7
楼主首先去学习了解M1卡数据、密码扇区排列规则,这个跟读卡器无关。
#8
楼主解决了吗 我也碰到这个 问题了 =-=
#9
检查下源码即可知道操作了哪块地址!
#1
我想读取其他扇区的数据怎么读取?块的绝对地址是什么意思,怎么调用?读取的数据都是第一扇区的块数据,怎么读取其他扇区的块数据?
#2
设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
#3
设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
#4
这个问题 有没有demo 参考一下demo 然后再进行处理 51的 rfid卡 应该蛮多的 资料。
#5
调的是别人封好的函数接口?那要看封好的函数接口具体做了些什么!
#6
您能说的详细一点吗。
设定地址指针的长度,按顺序寻址读入内存就好了,好像有专门的命令。
你这个最好用UCOS操作系统或者是Ubuntu内核的Linux(Ubuntu的函数较全),这个操作系统的好处就是有访问附加存储的函数,不上os的方法就是将外部存储器的地址做映射,映射到内部存储器的后边,然后接着地址(物理映射地址)访问。
#7
楼主首先去学习了解M1卡数据、密码扇区排列规则,这个跟读卡器无关。
#8
楼主解决了吗 我也碰到这个 问题了 =-=
#9
检查下源码即可知道操作了哪块地址!