找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4528|回复: 3
收起左侧

关于RC522模块 stm32单片机读取ic卡内部数据的问题

[复制链接]
ID:193604 发表于 2017-4-30 11:17 | 显示全部楼层 |阅读模式
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;   }
    }
    else
    {   status = MI_ERR;   }
   
    return status;
}
回复

使用道具 举报

ID:183046 发表于 2017-5-1 20:30 来自手机 | 显示全部楼层
我最近我在搞这个。楼主可以的话一起来谈谈。
回复

使用道具 举报

ID:276863 发表于 2018-1-17 09:54 | 显示全部楼层
status = PcdRead(add,Card_Data);
add: 是地址,建议外部传入 计算好的地址比如
add = sector*4+block;  //add = 扇区号*4+块几;
则读出的数据就会存入传入的Card_Data数组中
回复

使用道具 举报

ID:259489 发表于 2018-1-31 21:04 | 显示全部楼层
Johnny-_- 发表于 2018-1-17 09:54
status = PcdRead(add,Card_Data);
add: 是地址,建议外部传入 计算好的地址比如
add = sector*4+block;   ...

非常感谢,我也正好想不出来这个问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表