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

时间:2015-06-11 12:49:35

标签: macos serial-port usbserial xojo

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

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

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

Serial1是Serial控件的一个实例。

当我在Windows上运行我的应用程序并且未在OS X上确认时(设备以NAK回答),设备将此字符串确认为有效命令。

在OS X上,我也试图用CoolTerm手动发送相同的字符串,但也没有得到确认。

我做错了什么?是否在Xojo中使用Serial控件存在问题,和/或在Win和OS X下串口的工作方式有一些不同之处?

1 个答案:

答案 0 :(得分:1)

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

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