libnfc: запись и чтение пользовательских данных из NTAG

Я долго пытался писать и читать данные с моих карт NFC. Карты NTAG216. Я могу использовать примеры libnfc, чтобы прочитать идентификатор производителя, и он работает нормально. Но мне нужно записать в каждый тег некоторые пользовательские данные, например строку "abcdefg", и прочитать их обратно.

Я прочитал почти все, что мог найти о libnfc, но все они не говорят об этой конкретной области. Буду признателен за любые рекомендации. Пример кода будет оценен.

Я использую ACRU122 NFC для чтения / записи с libnfc 1.7.1 от Github.

1 ответ

После того как вы перечислили и активировали тег, вы можете использовать метод nfc_initiator_transceive_bytes()отправлять необработанные команды NTAG (такие как READ/WRITE) в тег. Поскольку набор команд NTAG216 совместим с набором команд MIFARE Ultralight (включая команду COMPATIBILITY WRITE), вы также можете использовать вспомогательные методы для тегов 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 использует).

Другие вопросы по тегам