为什么串行设备只能在一个 USB 端口上工作?

为什么串行设备只能在一个 USB 端口上工作?

这是关于某个名为 chirp 的软件的另一个问题。这是一个业余无线电程序,用于将频率编程到您的收音机中。如果我输入:

cd /dev

我更改了目录。从这里我输入:

ls

我得到了这个截图。/dev_#1.png

然后我输入 clear 并将设备插入 USB 端口。之后我重复该命令:

ls

正如您所看到的,我现在可以看到 /dev/ttyUSB0,而之前我看不到。因此,计算机知道它在那里,但当我在这个特定端口上启动 chirp 时,它无法识别它。根据说明,我

  1. 将电缆插入收音机。
  2. 将电缆插入计算机。
  3. 打开收音机。
  4. 开始鸣叫。

不幸的是,我无法向您显示“单选按钮”,它隐藏在顶部。但是当您将鼠标指向顶部时,它会显示“收音机”,并出现一个下拉菜单,上面写着“下载到收音机”,我尝试这样做并得到以下屏幕截图: 叽叽喳喳

建议我输入这些命令进行进一步测试:

dmesg -T

lsusb

这些是第一个 USP 端口的屏幕​​截图:

chirp1.1

chirp1.2

以下是第二个 USB 端口的屏幕​​截图:

chirp2.1

chirp2.2

最后一个 USB 端口:

chirp3.1

chirp3.2

根据另一个建议,我列出了此输出。输入此命令后:

cd /sys/class/tty
ls -l

我首先得到这个输出,没有连接任何串行设备:

无_USB

然后将设备连接到每个 USB 端口。屏幕截图中没有显示信息,所以我复制并粘贴了。

端口 1:

lrwxrwxrwx 1 root root 0 8月20日 04:51 ttyUSB0 -> ../../devices/pci0000:00/0000:00:12.0/usb7/7-1/7-1:1.0/ttyUSB0/tty/ttyUSB0

端口2:

lrwxrwxrwx 1 root root 0 8月20日 04:53 ttyUSB0 -> ../../devices/pci0000:00/0000:00:10.1/usb3/3-1/3-1:1.0/ttyUSB0/tty/ttyUSB0

和端口 3:

lrwxrwxrwx 1 root root 0 8月20日 04:54 ttyUSB0 -> ../../devices/pci0000:00/0000:00:10.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0

我确实从上一个答案中找到了最后一个线索。输入以下命令后:

dmesg | grep tty

我发现它们都连接着不同的号码。

USB_1-2

不知道为什么,我没能截取另外两个的屏幕截图。不过,我看到了以下信息:

8439.280901] usb 3-1:pl2303 转换器现已连接到 ttyUSB0

9103.795822] usb 7-1:pl2303 转换器现已连接到 ttyUSB0

更新:现在我有两个正常工作的端口,而那个不工作的端口已移回计算机的右侧。此端口的数值为 USB_7-1。再次感谢您提供的所有帮助。

答案1

也许有一些线索堆栈溢出

ls -l /sys/class/tty当您的设备插入 USB 端口时和不插入时,您的输出分别是什么?

确定/dev/ttyS*你的设备所连接的设备的另一种方法:

sudo apt-get install getserial

sudo setserial -g /dev/ttyS*

如果您只有一个连接的设备,则应该可以解析 setserial 的输出以确定您的设备连接到哪个端口。

(外部的来源

如果这两种解决方案都不起作用,我可能会尝试过滤 dmesg 输出,例如(假设“pl2303”是赠品字符串):

dmesg | perl -ne '/pl2303.*(tty\w+)/ && print $1,"\n"'

应该打印您可能尝试连接的 ttyUSB 设备字符串,而不是 /dev/ttyS*。

答案2

很高兴在这里认识另一位业余爱好者。适配器可能会显示为插入的每个 USB 端口的不同串行端口。这就是发生在我身上的事情。您可能想尝试不同的 /dev/ttyS# 值,看看哪个有效。

祝你好运

相关内容