2016-02-27 108 views
1

我一直在嘗試很長一段時間來寫入和讀取來自我的NFC卡的數據。這些卡是NTAG216。我可以使用libnfc示例來讀取製造商ID,它工作正常。但是我需要爲每個標籤寫入一些自定義數據,例如字符串「abcdefg」並將其讀回。libnfc:寫入和讀回來自NTAG的自定義數據

我已經閱讀了幾乎所有與libnfc相關的內容,但是他們都沒有提到這個特定的區域。我將不勝感激任何指導。代碼示例將不勝感激。

我使用的ACRU122 NFC讀寫器與libnfc 1.7.1 from Github

+0

感謝編輯問題 –

回答

2

一旦您枚舉並激活了標籤,您可以使用方法nfc_initiator_transceive_bytes()向標籤發送原始NTAG命令(如READ/WRITE)。由於NTAG216的命令集是對MIFARE超輕命令集(包括兼容性的寫命令)兼容,你也可以使用定義MIFARE標籤的便利方法utils/mifare.h

  • nfc_initiator_mifare_cmd(pnd, MC_WRITE, page, &mp)
  • nfc_initiator_mifare_cmd(pnd, MC_READ, page, &mp)

有關完整的代碼示例,請參見nfc-mfultralight實用程序:nfc-mfultralight.c

但是,您可能希望修改該代碼以使用更高效的MIFARE Ultralight/NTAG WRITE(0xA2)命令而不是COMPATIBILITY WRITE(這是MC_WRITE使用的)。

+0

感謝邁克。無論你寫什麼,我都會回去。在事情上,這些命令是否允許重寫,或者一旦你寫入,一切都變成只讀? –

+1

@StefanoMtangoo這取決於你寫的地方。 NTAG216有一個一次性可編程頁面(第3頁)和可重寫數據頁面(只要您不設置這些頁面的鎖定位)。 –

相關問題