2016-02-27 165 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页)和可重写数据页面(只要您不设置这些页面的锁定位)。 –

相关问题