0

我从 seeedstudio 为我的 arduino 单板购买了 NFC shield v2.0。我将屏蔽连接到 arduino,在断路器板上我有两个 LED 和一个 lcd,它们似乎工作得很好。我已经下载了官方库(http://www.seeedstudio.com/wiki/File:PN532_SPI_V2.zip),我尝试启动示例 readAllMemoryBlocks (以及所有其他示例......),当程序开始运行,我得到的是:

Found chip PN532, Firmware ver. 1.6, Supports 7

很好....现在,当我尝试联系我的标签(mifare 1k 卡或 nfc 论坛类型 2 标签)时,我得到了

Found 1 tags, Sens Response: 0x4, Sel Response: 0x8, 0x94 0x6F 0xFB 0xA6, Read card #2490366886

其中 # 旁边的数字是标签的 ID。一切都很好,除非它不读或写任何东西(没有一个例子)。经过一些基本调试后,我发现问题出在功能上

nfc.authenticateBlock(1, id ,blockn,KEY_A,keys)

其中blockn从0到63,根据库的cpp文件;在另一个示例(readMemoryBlock)中,块是 0x08,并且在 readMemoryBlock 函数中它永远不会返回 true ......所以我试图避免使用该函数,并放一个

nfc.readMemoryBlock(1,0x8,block)

但它也总是返回错误......所以图书馆本身似乎在使通信工作正常方面存在问题。示例代码可以在这里找到:https ://github.com/5v3n/Seeedstudio-PN532-RFID-NFC-Shield/blob/master/examples/readAllMemoryBlocks/readAllMemoryBlocks.pde

有人知道发生了什么吗?我是否必须安装某种我缺少的驱动程序(不要想,但是......)?有人用过这个盾吗?只想得到,至少,样品工作......

提前致谢!:)

Ps:所有标签都可以正常工作,我可以用我的智能手机应用程序读取写入擦除等...

编辑:对小错误感到抱歉..

4

1 回答 1

1

我在不同的盾牌上使用了 PN532。您必须让 authenticateBlock() 成功,因为没有该步骤,卡将无法读取或写入。

您可能会按 NDEF 标准格式化标签,因为您说您正在使用手机应用程序阅读。您没有显示密钥的值。目录和数据记录的标准键 A 是:

/**
 * @brief MAD directory standard key A
 */
uint8_t NdefReadWrite::keyDirA[6] = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5 };

/**
 * @brief NFC application standard key A
 */
uint8_t NdefReadWrite::keyAppA[6] = { 0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7 };

每个 NDEF 格式标记上的键 A 将是这些值。你在用那些钥匙吗?

此外,密钥是 6 个字节。authenticateBlock() 调用中的 8 是什么?

于 2013-10-28T06:14:48.390 回答