Mac 上的 RxTx - 串行端口已在使用中

Posted

技术标签:

【中文标题】Mac 上的 RxTx - 串行端口已在使用中【英文标题】:RxTx on Mac - Serial port already in use 【发布时间】:2012-10-12 20:24:04 【问题描述】:

我在 Mac 上安装了 RXTX。如果我们尝试打开串行端口,Java JAR 程序和 Arduino 软件都将 Arduino 视为 USB 调制解调器。两者都声称端口“已在使用”。两者都声称“未知用户”。我在 Java 扩展中有 rxtxcomm.jar

如何让其中任何一个工作?

【问题讨论】:

Mac 上的 arduino dev 最常见的问题之一。您说两种软件都可以看到它,但一次只能使用它 - 因此请确保在运行 Java 代码之前关闭 Arduino IDE 上的串行监视器,反之亦然! 【参考方案1】:

OS X 在串行端口上有某种排除机制。 MacBook 没有任何串行端口,但 USB 端口可以模拟它们。连接 Arduino 后,它在端口列表中显示为“/dev/tty.usbmodem...”,其中... 是一些尾随数字。

当说端口繁忙时,这是一个标准的I/O 异常,这意味着我们无法访问。当前所有者未定义,因为没有当前所有者。我们只是没有获得所有权所需的目录访问权限。

使用 Apple 终端,执行以下操作:

 sudo mkdir /var/lock
 sudo chmod a+rw /var/lock

这将创建所需的目录并使其可访问。串口不会再忙了,当然除非真的有别的东西在使用它!

【讨论】:

【参考方案2】:

processing.app.SerialException:串行端口“/dev/tty.usbmodem ...”已在使用中。尝试退出任何可能正在使用它的程序。

当我的外部 USB 硬盘也连接时,我会发生这种情况。当我断开它时,Arduino 的上传过程会正常工作。

【讨论】:

移除我的 U 盘(闪存驱动器)解决了我的问题。感谢您发布该消息,因为 /var/lock 至少单独似乎无法解决问题。【参考方案3】:

我在 RXTX 网站的troubleshooting, Mac OS X 下找到了一些信息。他们有一个可以运行的名为fixperm.sh 的shell 脚本,它可以更改/var/lock/ 的权限。在FHS site 上有更多关于/var/lock 的信息。

【讨论】:

以上是关于Mac 上的 RxTx - 串行端口已在使用中的主要内容,如果未能解决你的问题,请参考以下文章

RXTX Arduino USB 与 Windows

RXTX串口协议,端口properties文件设置,获取

Windows Server 2008 上的串行端口问题

从 Mac 上运行的 pyserial 打开串行端口时禁用 DTR

为啥我不能从 Android 上的串行端口打开/写入?

Android Things 3 无法从 Raspberry PI 3 上的 rxtx 读取