簡體   English   中英

Mifare 1K 分兩塊寫入數據

[英]Mifare 1K writing data in two blocks

您好,我正在使用 APDU 命令來讀寫 RFID 卡。 我可以從塊 num 2 中讀取並寫入 16 個字節的數據。 但是我在寫入更長的數據時遇到了問題,所以我該如何管理我試圖在兩個塊中寫入但它不起作用。 這就是我在編寫操作中實現代碼的方式

// write...
//


if (nres == SM_SUCCESS)// &&
//bAPDURes )
{
nlenrcv = sizeof(btRcv);
nlencmd = 0;

btCmd[nlencmd++] = 0xFF;                // CLA
btCmd[nlencmd++] = 0xD6;                // INS
btCmd[nlencmd++] = 0x00;                // P1, Mifare Block Number MSB, for mifare it is always 0x00
btCmd[nlencmd++] = 0x04;                // P2, Mifare Block Number LSB
btCmd[nlencmd++] = 32;              // Lc, Data Length
memcpy(btCmd + nlencmd, btWrite, 32);
nlencmd += 32;

nres = m_Smart.RFTransmit(DEV_INTERNALRF, nlencmd, btCmd, (DWORD*)&nlenrcv, btRcv);

您需要分別發送每個塊。 Mifare Classic Write命令一次只能寫入一個塊。

請參閱卡數據表的第 12.3 節

所以 RFTransmit 前 16 個字節的寫命令到第一個塊,RFTransmit 后 16 個字節的寫命令到下一個塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM