是否有读取带有X-NUCLEO_NFC05A1的NFC-A(ISO14443A)标签的功能?

是否有读取带有X-NUCLEO_NFC05A1的NFC-A(ISO14443A)标签的功能?,c,nfc,stm32,rfid,nucleo,C,Nfc,Stm32,Rfid,Nucleo,我使用X-NUCLEO-NFC05A1和STM32 NUCLEO-F401RE板读取NFC-A(ISO14443A)标签。我找不到任何用于读取标签的函数。有人能帮我吗 我试过了,我可以从那里找到write函数。但是我在那里找不到任何读取函数。您只需使用rfal库提供的rfalTransceiveBlockingTxRx()即可。这种收发机制适用于所有射频技术 由于没有用于与NFC-A标记交互的通用命令集,因此读取命令的确切编码将取决于您的特定标记类型。例如,对于类型2标记,READ命令将由两个字

我使用X-NUCLEO-NFC05A1和STM32 NUCLEO-F401RE板读取NFC-A(ISO14443A)标签。我找不到任何用于读取标签的函数。有人能帮我吗


我试过了,我可以从那里找到write函数。但是我在那里找不到任何读取函数。

您只需使用rfal库提供的
rfalTransceiveBlockingTxRx()
即可。这种收发机制适用于所有射频技术

由于没有用于与NFC-A标记交互的通用命令集,因此读取命令的确切编码将取决于您的特定标记类型。例如,对于类型2标记,READ命令将由两个字节组成:
0x30

例如,对于这样的标记,您可以使用如下内容:

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

您只需使用rfal库提供的
rfal_rf.h
中的
rfalTransceiveBlockingTxRx()。这种收发机制适用于所有射频技术

由于没有用于与NFC-A标记交互的通用命令集,因此读取命令的确切编码将取决于您的特定标记类型。例如,对于类型2标记,READ命令将由两个字节组成:
0x30

例如,对于这样的标记,您可以使用如下内容:

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

也许你需要自己写一个?也许你需要自己写一个?首先,我是这些学科的初学者(nfc/nfc标签)。我正在使用NFC-a T2T设备,我可以找到带有rfalNfcaListenDevice.nfcId1的uid/NFC id。现在我想读一下它的内容。“读取偏移量”是什么意思?在我的例子中,我想为bufferTx[lenTx++]设置什么?我建议您从阅读一本关于NFC的书开始,以了解协议(例如,尽管德语版本肯定要好得多)。因为您似乎已经知道您的标签是T2T,所以您也可以从获取NFC论坛类型2标签规范(或旧的NFC论坛类型2标签操作规范)的副本开始。它列出了您需要的所有命令,还显示了这些标签上的数据是如何组织的(线性内存布局,因此是读取偏移量)。如果您知道确切的产品类型(例如NXP NTAG2xx),您可能还需要从制造商处获取该标签的数据表副本。数据表还将告诉您命令、响应的格式和编码,以及确切的内存布局。顺便说一句。read offset是要从标记读取的块的块地址(或者实际上是要从标记读取的4个块中的第一个)。首先,我是这些主题(nfc/nfc标记)的初学者。我正在使用NFC-a T2T设备,我可以找到带有rfalNfcaListenDevice.nfcId1的uid/NFC id。现在我想读一下它的内容。“读取偏移量”是什么意思?在我的例子中,我想为bufferTx[lenTx++]设置什么?我建议您从阅读一本关于NFC的书开始,以了解协议(例如,尽管德语版本肯定要好得多)。因为您似乎已经知道您的标签是T2T,所以您也可以从获取NFC论坛类型2标签规范(或旧的NFC论坛类型2标签操作规范)的副本开始。它列出了您需要的所有命令,还显示了这些标签上的数据是如何组织的(线性内存布局,因此是读取偏移量)。如果您知道确切的产品类型(例如NXP NTAG2xx),您可能还需要从制造商处获取该标签的数据表副本。数据表还将告诉您命令、响应的格式和编码,以及确切的内存布局。顺便说一句。read offset是要从标记读取的块的块地址(或者实际上是要从标记读取的4个块中的第一个)。