串行端口或 Serial.Write 在 Mac 和 Windows 上的工作方式是否不同?

Are serial port or Serial.Write working differently on Mac and Windows?

我正在尝试编写一个 Xojo 应用程序来与通过 USB/Serial 适配器连接到我的 Mac 的设备(ZVT-ECash 终端)进行通信。

我正在 OS X 和 Windows 7(运行ning 在 Parallels 下测试我的应用程序。 在这两种情况下,我都通过 Serial.Write 以某种方式发送一个字符串(总是相同的):

command = chrb(&h10) + chrb(&h02) + chrb(&h06) + chrb(&h00) +chrb(4)...
Serial1.Write(command)

Serial1 是 Serial 控件的实例。

当我 运行 我的应用程序在 Windows 上时,该字符串被设备确认为有效命令,但在 OS X 上未被确认(设备以 NAK 应答) .

On OS X 我也尝试用 CoolTerm 手动发送相同的字符串,但也没有被确认。

我做错了什么? Xojo 中的串口控制是否有问题,and/or 串口在 Win 和 OS X 下的工作方式有一些普遍差异吗?

我最近 运行 遇到了类似的问题。原来它与 Xojo 无关(尽管 CoolTerm 也是用 Xojo 编写的)。

问题出在使用“2303”Prolific 芯片的适配器的 OS X 驱动程序上。我发现 Prolific 的驱动程序和开源版本 (osx.pl2303) 都有问题:前者并不总是正确设置波特率,而后者没有正确处理硬件握手。我的解决方案是从 https://www.mac-usb-serial.com 购买驱动程序 - 它是唯一适用于 OS X 且具有两个不同的基于 2303 的适配器的驱动程序。