首页 > 解决方案 > Windows 上的 PN532 HSU 中间读取

问题描述

除了固件信息命令之外,我无法可靠地让PN532响应命令。我在 Windows 上使用 HSU 和从 Adafruit 获得的 FTDI 电缆以及他们的开发板的 v1.6。

黑色读取来自ReadFile调用超时,它设置为 20,所有流控制都被禁用。

我不认为它是电缆,因为唤醒和固件版本的东西是有效的并且每次都有效。

串口开启代码:

// Open the COM port
HANDLE commHandle = CreateFile(
    "\\\\.\\COM5",
    GENERIC_READ | GENERIC_WRITE,
    0,
    null,
    OPEN_EXISTING,
    0,
    null
);

// Get the existing settings
DCB serialSettings;
GetCommState(
    commHandle,
    &serialSettings
);
// Page 26 of the User Manual specifies these settings
serialSettings.BaudRate = CBR_115200;
serialSettings.ByteSize = 8;
serialSettings.StopBits = ONESTOPBIT;
serialSettings.Parity = NOPARITY;

// These did not make it any better or worse
serialSettings.fParity = false;
serialSettings.fOutxCtsFlow = false;
serialSettings.fOutxDsrFlow = false;
serialSettings.fDtrControl = DTR_CONTROL_DISABLE;
serialSettings.fDsrSensitivity = false;
serialSettings.fTXContinueOnXoff = true;
serialSettings.fOutX = false;
serialSettings.fInX = false;
serialSettings.fErrorChar = false;
serialSettings.fNull = false;
serialSettings.fRtsControl = RTS_CONTROL_DISABLE;
serialSettings.fAbortOnError = false;

// Setup the state
SetCommState(
    commHandle,
    &serialSettings
);

// Clean out any buffers or flags
PurgeComm(
    commHandle,
    PURGE_RXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR
);

HANDLE使用从输出参数获得的大小写入和读取的数据。

Write:  55 55 00 00 00 00 00 00 00 00 FF 02 FE D4 02 2A 00
Read:  00 00 FF 00 FF 00 00 00 FF 06 FA D5 03 32 01 06 07 E8 00
Write:  00 00 FF 00 FF 00
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Write:  00 00 FF 05 FB D4 14 01 14 01 02 00
Read: 
Read:

编辑:这似乎只发生在 Windows 上,我在 Debian 上尝试了相同的过程并且效果很好。我为此使用 Java,所以我只需要重写本机,因此通信本身似乎可以正常工作。这对我来说很奇怪。

标签: windowswinapiserial-portnfc

解决方案


推荐阅读