0

我正在尝试将使用 NXP PN532 的 RFID1356MIFARE 与使用其 UART 功能的ESP32 - EVB集成。

NXP 文档指出 PN532 能够在高速 UART 上进行通信。

我正在尝试使用 38400,因为这是我正在使用的阅读器固定的波特率。

我发现了一个修改后的 Adafruit PN532 库,它添加了 HSU 支持。该库指出HSU uses 115200 baud rate.

现在,我已经修改PN532_HSU.cpp了,我们可以在其中找到:

void PN532_HSU::begin()
{
    _serial->begin(115200);
}

进入

void PN532_HSU::begin()
{
    _serial->begin(38400, SERIAL_8N1, 36, 4);
}

不幸的是,我无法使用这种方法在阅读器和 ESP 之间建立通信。

我可以使用 normal 获得可读输出Serial.read(),因此 UART 通信有效,但这不是您阅读 MIFARE 卡的方式。

我不知道问题是什么。

你怎么看 ?

4

1 回答 1

0

[编辑]

我浏览了文档,这是我的建议:如果您有一个 USB 转串口设备,请使用它将阅读器模块直接连接到计算机,否则使用模块中的迷你 USB 端口直接连接它。请执行以下步骤:

  1. 根据您将设备连接到计算机的方式,将设备置​​于 UART/USB CDC 模式。文档的操作部分提供了执行此操作的确切方法
  2. 使用 picoterm / screen 或其他串行终端(如果您使用的是 Linux)或仅使用具有正确波特率的 Arduino 串行监视器来连接设备。(USB 为 115200,UART 为 38400)
  3. 键入文档中 COMMAND SET FOR CDC AND UART MODE 部分中列出的命令,以检查模块是否正常工作。
  4. 将一些卡放在读卡器上以检查模块在检测到卡时发送什么响应。
  5. 使用此信息为读者开发您自己的图书馆。

它不适用于常规 PN532 库。相反,您需要使用常规的串行读写进行通信。

[原来的]

PN532 数据表中说主机接口是通过上拉/下拉设备的 I0、I1 引脚来选择的。对于 HSU,两个引脚都必须拉低。这是在硬件中实现的,因此您需要验证是否设置了要使用的模式。

查看您为模块发布的链接,它说它使用板上的另一个微控制器来扩展通信能力,所以也许您需要使用该特定控制器固件的驱动程序?该链接似乎有文档说明如何在文档部分设置不同的通信系统,请查看并检查它是否有效。链接:https ://www.olimex.com/wiki/MOD-RFID1356MIFARE

于 2021-02-10T17:44:21.823 回答