我一直在嘗試很長一段時間來寫入和讀取來自我的NFC卡的數據。這些卡是NTAG216。我可以使用libnfc示例來讀取製造商ID,它工作正常。但是我需要爲每個標籤寫入一些自定義數據,例如字符串「abcdefg」並將其讀回。libnfc:寫入和讀回來自NTAG的自定義數據
我已經閱讀了幾乎所有與libnfc相關的內容,但是他們都沒有提到這個特定的區域。我將不勝感激任何指導。代碼示例將不勝感激。
我使用的ACRU122 NFC讀寫器與libnfc 1.7.1 from Github。
我一直在嘗試很長一段時間來寫入和讀取來自我的NFC卡的數據。這些卡是NTAG216。我可以使用libnfc示例來讀取製造商ID,它工作正常。但是我需要爲每個標籤寫入一些自定義數據,例如字符串「abcdefg」並將其讀回。libnfc:寫入和讀回來自NTAG的自定義數據
我已經閱讀了幾乎所有與libnfc相關的內容,但是他們都沒有提到這個特定的區域。我將不勝感激任何指導。代碼示例將不勝感激。
我使用的ACRU122 NFC讀寫器與libnfc 1.7.1 from Github。
一旦您枚舉並激活了標籤,您可以使用方法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
使用的)。
感謝邁克。無論你寫什麼,我都會回去。在事情上,這些命令是否允許重寫,或者一旦你寫入,一切都變成只讀? –
@StefanoMtangoo這取決於你寫的地方。 NTAG216有一個一次性可編程頁面(第3頁)和可重寫數據頁面(只要您不設置這些頁面的鎖定位)。 –
感謝編輯問題 –