libnfc:从NTAG写入和读回自定义数据

时间:2016-02-27 21:05:17

标签: c++ nfc mifare acr122 lib-nfc

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

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

我使用带有libnfc 1.7.1 from Github的ACRU122 NFC读写器。

1 个答案:

答案 0 :(得分: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)命令而不是兼容性写入(MC_WRITE使用的那种)。