usb - 如何在 Cygwin 中使用 COM 和 USB 端口?

标签 usb cygwin serial-port arduino pyserial

我想用 Python 脚本从我的 Arduino 板发送/接收数据。我想使用 Python 和它的 pySerial 模块来做这件事,这似乎符合我的需要。所以我在 cygwin (windows XP 后面) 中安装了 Python 和 pySerial。

Python 脚本相当简单:

$ cat example.py

#print "testing my COM26 port using python"

import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 26
ser
ser.open()
ser.isOpen()

但是在运行时我收到以下错误。
$ python example.py
Traceback (most recent call last):
  File "example.py", line 9, in <module>
    ser.open()
  File "/usr/lib/python2.5/site-packages/serial/serialposix.py", line 276, in open
    raise SerialException("could not open port %s: %s" % (self._port, msg))
serial.serialutil.SerialException: could not open port 26: [Errno 2] No such file or directory: '/dev/com27'

Could not open port 26: [Errno 2] No such file or directory: '/dev/com27'



我怎么知道我的 Arduino 连接到端口 COM27?

嗯,很简单。 Arduino IDE 是这样说的,我可以使用该端口从 IDE 的串行端口监视器工具发送和接收数据。此外,我也设法让 super 终端使用该端口工作。

但是,Cygwin 似乎不知道这样的 USB 和 COM 端口:
$ ls -lah /dev
total 4,0K
.
..
fd -> /proc/self/fd
mqueue
shm
stderr -> /proc/self/fd/2
stdin -> /proc/self/fd/0
stdout -> /proc/self/fd/1

应该提到的是,我在没有经典串行 COM 端口,只有 USB 端口的戴尔笔记本电脑上运行它。 (所以我想这很正常,例如 /dev/com1 不存在。)

我不知道我问的是否正确,但我的问题是:如何配置 Cygwin 以便它知道这个 COM27 端口?

最佳答案

windows中的串口映射到cygwin为:

COM ->/dev/ttyS

例如 COM3 ->/dev/ttyS2

为了打开 COM3,example.py 可以重写为:

import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = "/dev/ttyS2"
ser
ser.open()
ser.isOpen()

关于usb - 如何在 Cygwin 中使用 COM 和 USB 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899180/

相关文章:

c - 在 C 中解析和读取数据帧?

c# - LibUsbDotNet:退出 WPF 应用程序时出错 - 安全句柄已关闭

linux - 运行 sh 脚本给出未找到任何 UNIX/Linux 基本命令的命令

windows - 如何从桌面图标通过 Cygwin 使用 GUI 启动 GNU Octave?

java - 在 Cygwin 上从自解压 bin 安装 JDK

node.js - 错误 : Could not locate the bindings file. 已尝试:

angular - 在Electron和Angular中使用SerialPort失败

android - 即使在Android内核中启用usbmon后也没有USB总线文件?

USB闪存驱动器上的Ubuntu

linux - 使用 Linux 计算机作为 USB 耦合器