libnfc:写入和读回来自NTAG的自定义数据
我一直在尝试很长一段时间来写入和读取来自我的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页)和可重写数据页面(只要您不设置这些页面的锁定位)。 –
感谢编辑问题 –