连接USB端口时出现“资源忙”错误

3 投票
1 回答
4231 浏览
提问于 2025-04-29 10:18

我有一段代码,试图连接一个USB心电图(ECG)传感器设备,以便持续获取数据:

import serial 

s = serial.Serial()
s.port = "/dev/tty.my-device"
s.open()

当我运行这段代码时,出现了以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "create_port.py", line 7, in <module>
    s.open()
  File "/Users/dimachy/anaconda/lib/python2.7/site-packages/serial/serialposix.py", line 289, in open
  self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
OSError: [Errno 16] Resource busy: '/dev/tty.my-device'

我尝试用sudo命令运行这段代码,但没有成功。我还试着在电脑的网络设置中将USB服务设为不活动,但这也没有改变上面的错误。

我使用Thomas在这里提供的代码扫描可用的端口:

用Python列出可用的串口

我发现只有一个端口可用,它被列为蓝牙端口。而/dev/tty.my-device这个端口在扫描中没有出现。

当心电图设备通过USB插入时,它会立即开始传输数据(不需要调用设备就能开始)。我猜这可能和我上面提到的“资源忙”错误有关。

我对网络编程非常陌生,所以可能漏掉了一些明显的东西。有没有人能给我一些建议?

暂无标签

1 个回答

0

你可以查看哪些程序正在使用那个“文件”(在Unix系统中,所有的串口设备其实都是可以读取的文件)。可以试着用fuser这个命令来列出正在使用你这个文件的程序。

在你的情况下,可以这样使用:

$ fuser /dev/tty.my-device

撰写回答