如何解决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 端口直接连接。以下步骤:
- 根据您将设备连接到计算机的方式,将设备置于 UART/USB CDC 模式。文档的操作部分提供了执行此操作的确切方法
- 使用 picoterm / screen 或其他串行终端(如果您使用的是 Linux)或仅使用具有正确波特率的 Arduino 串行监视器来连接设备。(USB 为 115200,UART 为 38400)
- 键入文档中 COMMAND SET FOR CDC AND UART MODE 部分中列出的命令,以检查模块是否正常工作。
- 将一些卡放在读卡器上,以检查检测到卡时模块发送的响应。
- 使用此信息为读者开发您自己的图书馆。
它不适用于常规 PN532 库。相反,您需要使用常规串行读写进行通信。
[原文]
PN532 数据表说主机接口是通过上拉/下拉设备的 I0、I1 引脚来选择的。对于 HSU,两个引脚都必须下拉。这是在硬件中实现的,因此您需要验证是否设置了要使用的模式。
查看您为模块发布的链接,它说它使用板载另一个微控制器来扩展通信功能,所以也许您需要使用该特定控制器固件的驱动程序?该链接似乎在文档部分有解释如何设置不同通信系统的文档,请查看那里并检查它是否有效。 链接:https://www.olimex.com/wiki/MOD-RFID1356MIFARE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。