微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NXP PN532 能否以 38400 波特率在 UART 上工作?

如何解决NXP PN532 能否以 38400 波特率在 UART 上工作?

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

NXP docs 表明 PN532 能够在高速 UART 上进行通信。

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

我发现了一个添加了 HSU 支持modified Adafruit PN532 library。该库声明 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 之间建立通信。

我能够使用普通的 Serial.read() 获得可读的输出,因此 UART 通信有效,但这不是您读取 mifare 卡的方式。

我不知道是什么问题。

你怎么看?

解决方法

[编辑]

我浏览了文档,这里是我的建议:如果您有 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?