我正在使用 aCH341-UART Converter
将一些字符串数据发送到 USB 端口。我怎样才能找到通讯连接设备的端口号?例如在这个程序中:
import serial
ComPort = serial.Serial('COM24') # open COM24
ComPort.baudrate = 9600
ComPort.bytesize = 8
COM24
是我的港口。但如何找到正确的 com 端口号呢?
答案1
许多 Linux 发行版(通常是 Debian 及其衍生版本)都有一个/dev/serial/by-id
目录。这显示了串行 USB 设备的完整“硬件”名称。在插入和拔出插头时观察此目录以识别您的设备。
在该全名和用户主目录中一些方便的简短名称之间创建符号链接。该完整路径(/home/me/myserial)是程序中使用的“com 端口”。由于符号链接,这在插入/拔出/重新启动时是稳定的。
例子:
my@host:~$ ls -lA /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Jun 11 07:21 usb-FTDI_FT232R_USB_UART_ANZ1SMDF-if00-port0 -> ../../ttyUSB2
my@host:~$ ln -s /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_ANZ1SMDF-if00-port0 /home/me/myserial
这会创建一个符号链接:/home/me/myserial
每当 USB/串行转换器插入主机时,该符号链接都会指向该转换器。
答案2
在 Linux 下,你的设备没有类似的元名称com1
。您的 USB 适配器将添加到/dev
具有驱动程序特定名称的目录中。大多数usb-uart适配器使用的名称/dev/ttyUSB*
是*
从0开始的数字。获得该名称的最佳方法是通过dmesg
适配器的插件前后查看内核消息的变化。你应该得到类似的东西:
usb 4-2: ch341-uart converter now attached to ttyUSB0
所以你必须使用 ' /dev/ttyUSB0
' 而不是com24
。
但对设备节点的访问仅限于 root 用户。所以你必须解决这个问题。