我想用 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 端口?