我正在用 Qt 开发一个跨平台的用户界面,我需要通过串口进行通信。通过使用以下端口名称,我可以在 Windows 和 Linux 上使用串行端口:
Windows 上的 COM1、COM2 等;
Linux 上的 ttyACM0、ttyS0、ttyS1 等。
现在我想在 Mac OS X 上做同样的事情。你知道 Mac OS X 上可能的端口名称是什么吗?
提前致谢!
我正在用 Qt 开发一个跨平台的用户界面,我需要通过串口进行通信。通过使用以下端口名称,我可以在 Windows 和 Linux 上使用串行端口:
Windows 上的 COM1、COM2 等;
Linux 上的 ttyACM0、ttyS0、ttyS1 等。
现在我想在 Mac OS X 上做同样的事情。你知道 Mac OS X 上可能的端口名称是什么吗?
提前致谢!
它们几乎可以是任何东西。他们可能会/dev/tty.SOMETHING
,但不能保证。例如,我的 USB->serial dongle 是:/dev/tty.usbserial-FTG6RCEJ
. 我认为最后一点乱码是序列号或其他东西。
无论如何,您不应该询问用户使用哪个端口吗?
要在 Mac OS X 中使用编程器,您需要确定已为其串行端口分配了哪些名称。
为此,请打开终端窗口,键入ls /dev/tty.usb*
,然后按 Enter。您应该看到表单的两个条目tty.usbmodem<number>
(例如/dev/tty.usbmodem00022331
)。这些条目代表程序员创建的虚拟串行端口。
编号较小的条目是您的程序员的编程端口,稍后您需要将其名称作为参数传递给 AVRDUDE。编号较大的条目(应为 2 加上较小的编号)是 TTL 串行端口,您可以使用终端程序screen
从它发送和接收字节。
如果您插入了其他 USB 设备,您可能会看到这些设备的其他串行端口。
使用 Arduino,我的一个是:
/dev/tty.usbmodemfa131
每个端口的最后 5 个字符都不同。
OS X 中串行端口的名称取决于驱动程序。可能是这样的/dev/tty.USBSERIAL/
,也可能是/dev/tty.PL2303-xxx
您可能希望让用户创建一个符号链接,例如/dev/tty.MY_APP_USB
指向其特定串行端口的符号链接。
许多 USB->miniUSB 电缆没有插入所有引脚,只有 Vcc 和 GND。他们,电缆可能是问题所在