CH341-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 어댑터는 0부터 시작하는 숫자 /dev/ttyUSB*
로 된 이름을 사용합니다 *
. 이름을 얻는 가장 좋은 방법은 dmesg
어댑터 플러그인을 통해 커널 메시지의 변경 사항을 살펴보는 것입니다. 다음과 같은 결과를 얻을 수 있습니다:
usb 4-2: ch341-uart converter now attached to ttyUSB0
/dev/ttyUSB0
그래서 대신 ' ' 를 사용해야 합니다 com24
.
그러나 장치 노드에 대한 액세스는 루트 사용자로 제한됩니다. 그래서 이 문제를 해결해야 합니다.