2

很长一段时间以来,我一直在尝试从我的 NFC 卡中写入和读取数据。这些卡是 NTAG216。我可以使用 libnfc 示例来读取制造商 ID,它工作正常。但我需要向每个标签写入一些自定义数据,例如字符串“abcdefg”并将其读回。

我已经阅读了几乎所有我能找到的关于 libnfc 的相关内容,但所有这些都没有谈到这个特定领域。我将不胜感激任何指导。代码示例将不胜感激。

我使用来自 Github 的带有libnfc 1.7.1的 ACRU122 NFC 读/写器。

4

1 回答 1

2

枚举并激活标签后,您可以使用该方法nfc_initiator_transceive_bytes()向标签发送原始 NTAG 命令(例如 READ/WRITE)。由于 NTAG216 的命令集与 MIFARE Ultralight 命令集(包括 COMPATIBILITY WRITE 命令)兼容,您还可以使用utils/mifare.h中定义的 MIFARE 标签的便捷方法:

  • 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使用的)。

于 2016-03-26T18:09:40.263 回答