找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8257|回复: 5
收起左侧

各位大佬们 !谁知道怎样向空白的IC卡各扇区写数据

[复制链接]
ID:344747 发表于 2018-6-6 13:16 | 显示全部楼层 |阅读模式
30黑币
写入数据之后,能正常读出来
就像读卡号一样,目前我只能把卡号读出来

回复

使用道具 举报

ID:540100 发表于 2019-7-18 10:06 | 显示全部楼层
///////////////////////////////////////////////////////////////////// //1|    Äü£oD′êy¾Yμ½M1¿¨ò»¿é //2ÎêyËμÃ÷: addr[IN]£o¿éμØÖ· //          pData[IN]£oD′èëμÄêy¾Y£¬16×Ö½ú //·μ    »Ø: 3é1|·μ»ØMI_OK /////////////////////////////////////////////////////////////////////                   char PcdWrite(unsigned char addr,unsigned char *pData) {     char status;     unsigned int  unLen;     unsigned char i,ucComMF522Buf[MAXRLEN];           ucComMF522Buf[0] = PICC_WRITE;     ucComMF522Buf[1] = addr;     CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);       status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);      if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))     {   status = MI_ERR;   }              if (status == MI_OK)     {         //memcpy(ucComMF522Buf, pData, 16);         for (i=0; i<16; i++)         {    ucComMF522Buf[i] = *(pData+i);   }         CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);          status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);         if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))         {   status = MI_ERR;   }     }          return status; }
回复

使用道具 举报

ID:540100 发表于 2019-7-18 10:07 | 显示全部楼层
/////////////////////////////////////////////////////////////////////
写数据块函数
/////////////////////////////////////////////////////////////////////                  
char PcdWrite(unsigned char addr,unsigned char *pData)
{
    char status;
    unsigned int  unLen;
    unsigned char i,ucComMF522Buf[MAXRLEN];
   
    ucComMF522Buf[0] = PICC_WRITE;
    ucComMF522Buf[1] = addr;
    CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);

    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);

    if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))
    {   status = MI_ERR;   }
        
    if (status == MI_OK)
    {
        //memcpy(ucComMF522Buf, pData, 16);
        for (i=0; i<16; i++)
        {    ucComMF522Buf[i] = *(pData+i);   }
        CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);

        status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);
        if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))
        {   status = MI_ERR;   }
    }
   
    return status;
}
回复

使用道具 举报

ID:582082 发表于 2019-7-18 10:25 | 显示全部楼层
/////////////////////////////////////////////////////////////////////
写数据块函数
/////////////////////////////////////////////////////////////////////                  
char PcdWrite(unsigned char addr,unsigned char *pData)
{
    char status;
    unsigned int  unLen;
    unsigned char i,ucComMF522Buf[MAXRLEN];
   
    ucComMF522Buf[0] = PICC_WRITE;
    ucComMF522Buf[1] = addr;
    CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);

    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);

    if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))
    {   status = MI_ERR;   }
        
    if (status == MI_OK)
    {
        //memcpy(ucComMF522Buf, pData, 16);
        for (i=0; i<16; i++)
        {    ucComMF522Buf[i] = *(pData+i);   }
        CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);

        status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);
        if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))
        {   status = MI_ERR;   }
    }
   
    return status;
}

回复

使用道具 举报

ID:586408 发表于 2019-7-18 15:54 | 显示全部楼层
其实每个扇区都是一个重要的扇区,但是如果你的IC卡只是使用了某一个或者是某几个扇区的话,那使用的就是最重要的扇区了,而IC卡里面存储的只是数据信息,只有导出的时候,才能显示的
回复

使用道具 举报

ID:586486 发表于 2019-7-18 17:10 | 显示全部楼层
买个nfc读写器,可以用arduinoo控制
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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