我对 NFC 设备阅读非常陌生,但我已经设法使用nfc-mfultralight.c (libnfc) 中的代码在自己的项目中实现。
我不明白的是,当我从 MIFARE Ultralight 波段读取数据时,我得到了很多垃圾。
例如,我在标签中有数字 255555574558888(我使用 Android 设备将这个数字写入标签)。
现在当我运行时:
nfc-mfultralight r /home/user/dump
我明白了
d▒r▒!▒ H▒▒U255555574558888▒-67644-67546-2346
这是来自libnfc的例子,所以这个程序不应该只是读取正确的数据吗?我正在使用的 Android 应用程序只看到值 255555574558888。值 -67644-67546-2346 是我之前编写的部分内容。
我如何知道我需要读取的正确数据?我应该在示例代码中进行哪些更改以使其正常工作?
我正在使用 ACR122 从标签中读取数据。
PS:这是我第一个使用 NFC 设备、libnfc 和 MIFARE Ultralight 标签的项目,所以您认为我应该阅读的任何内容请告诉我。
编辑 1
所以我发现了这个问题:Reading a NFC Mifare card with NXP Reader Library
我认为这对我有所帮助。我打印出另一个测试字符串的十六进制值并得到了这个
04 64 13 fb
72 f7 21 84
20 48 00 00
e1 11 06 00
03 0a d1 01
06 54 02 65
6e 68 65 79
fe 00 00 79
35 35 38 38
38 38 fe 00
2d 36 37 36
34 34 2d 36
37 35 34 36
2d 32 33 34
36 fe 00 00
00 00 00 00
00
我看到3d
后面是0a
then d1
,但是之前的所有值是3d
什么?这是因为libnfc吗?