Есть ли какая-либо функция для чтения тега NFC-A (ISO14443A) с помощью X-NUCLEO_NFC05A1? - PullRequest
1 голос
/ 28 мая 2019

Я использую X-NUCLEO-NFC05A1 с платой STM32 NUCLEO-F401RE для чтения тега NFC-A (ISO14443A).Я не мог найти функцию для чтения тега.Кто-нибудь может мне помочь?

Я пробовал пример, заданный ST , я мог найти функцию записи оттуда.Но я не смог найти оттуда никакой функции чтения.

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете просто использовать rfalTransceiveBlockingTxRx() из rfal_rf.h, предоставляемых библиотекой RFAL. Этот механизм приема применяется ко всем радиочастотным технологиям.

Поскольку не существует универсального набора команд для взаимодействия с тегами NFC-A, точное кодирование команды READ будет зависеть от вашего конкретного типа тега. Например, для тега типа 2 команда READ будет состоять из двух байтов: 0x30 <BLOCK-ADDRESS-AS-SINGLE-BYTE>

Для такого тега вы можете, например, использовать что-то вроде этого:

uint8_t bufferTx[2];
uint16_t lenTx;
uint8_t bufferRx[16];
uint16_t lenRxMax, lenRx;
ReturnCode status;

lenTx = 0;
bufferTx[lenTx++] = 0x30;
bufferTx[lenTx++] = 0;  // TODO: change this to the read offset

lenRxMax = 16;
lenRx = 0;
status = rfalTransceiveBlockingTxRx(&bufferTx[0], lenTx, &bufferRx[0], lenRxMax, &lenRx, RFAL_TXRX_FLAGS_DEFAULT, rfalConvMsTo1fc(5));

// if status does not indicate error,
// you will now find the response in bufferRx,
// the actual response length is lenRx
...