【发布时间】:2010-05-24 18:12:30
【问题描述】:
我想使用 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'
无法打开端口 26:[Errno 2] 没有这样的文件或目录:'/dev/com27'
我如何知道我的 Arduino 已连接到端口 COM27?
嗯,很简单。 Arduino IDE 是这样说的,我可以使用该端口从 IDE 的串行端口监视器工具发送和接收数据。此外,我还设法让超级终端使用该端口工作。
但是,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 端口?
【问题讨论】:
-
为什么选择 Cygwin? PySerial 原生支持 Win32。
-
因为它很容易安装软件包,而且我还需要安装其他软件包。会尝试 python win32 native 然后我猜
-
好的。尝试过(Windows上的本机python + pyserial本机Windows安装程序)并且相同的代码按预期工作......很奇怪。但我真的需要了解为什么在这里使用 cygwin 不起作用我觉得这是一个 cygwin 问题,我猜与 python 无关
-
这是一个 cygwin 问题 - 它似乎没有将 COM 端口映射到“/dev”命名空间。我不确定它是否有能力做到这一点。
标签: usb cygwin serial-port arduino pyserial