python - "Resource busy"连接到 USB 端口时出错

标签 python serial-port usb sensors

我有尝试连接到 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 在这里的回答中的代码扫描可用端口时:

Listing available com ports with Python

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

当通过 USB 插入 ECG 设备时,它会立即开始传输数据(无需调用设备即可启动)。我猜这可能与我遇到的“资源繁忙”错误有关。

我是网络编程的新手,所以我可能遗漏了一些明显的东西。有人有什么建议吗?

最佳答案

您可以尝试查看正在使用该"file"的进程(在 unix 系统中,所有串行设备都只是要读取的文件)。尝试使用 fuser 列出使用您的文件的进程。 http://en.wikipedia.org/wiki/Fuser_(Unix)

在你的情况下是这样的: $ fuser/dev/tty.my-device

关于python - "Resource busy"连接到 USB 端口时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542231/

相关文章:

c - ReadFile 为 "completing asynchronously"意味着什么,为什么它是一个错误?

linux - USB 网络是如何工作的

javascript - 无法使用 chrome api 从 hid 设备获取任何输入数据

python - 如何在不更改文件缩进的情况下使用 ruamel.yaml 包编辑 yaml 文件?

linux - USB 调制解调器回显错误字符

linux - 如何禁用/阻止用户在嵌入式 linux 中的串行终端上输入命令

usb - 通过USB控制简单的继电器开关

python - Opencv Python维护零像素

python - 使用 Python selenium 处理 'No such element exception'

python - 你可以用 Lisp 宏做什么,而一流的函数却做不到?