use*_*188 10 usb cygwin serial-port arduino pyserial
我想用Python脚本从我的Arduino板发送/接收数据.我想使用Python及其pySerial模块来完成它,这似乎符合我的需要.所以我在cygwin中安装了Python和pySerial(Windows XP背后).
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()
Run Code Online (Sandbox Code Playgroud)
但是在运行时我收到以下错误.
$ 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'
Run Code Online (Sandbox Code Playgroud)
无法打开端口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
Run Code Online (Sandbox Code Playgroud)
应该提到的是,我在没有经典串行COM端口,只有USB端口的戴尔笔记本电脑上运行它.(所以我想这很平常,例如/dev/com1不存在.)
我不知道我是否正确询问,但我的问题是:如何配置Cygwin以便它知道这个COM27端口?
如果Hyperterminal可以访问它,那么它将作为"虚拟COM端口"安装.Cygwin将允许您以/ dev/ttyS26(由Windows称为COM27)访问它.您可能仍然遇到输入阻止问题,直到收到CR - 我这样做.(试图解决这个问题,我是如何找到这个的.)
小智 5
Windows 中的串行端口映射到 cygwin 为:
COM -> /dev/ttyS
例如 COM3 -> /dev/ttyS2
可以将 example.py 重写为打开 COM3 为:
import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = "/dev/ttyS2"
ser
ser.open()
ser.isOpen()
Run Code Online (Sandbox Code Playgroud)
小智 1
如果您使用的笔记本电脑没有 COM 端口,则无法打开此端口并开始 make 操作。
在Windows中,有一个函数可以打开该端口并更改某些线路的状态(RST),读取状态并进行传输。对于 LPT 端口,您无法在 Windows 中执行此操作,您必须使用一些库。对于 USB 来说也是个问题,你必须知道连接到 USB 的设备。
| 归档时间: |
|
| 查看次数: |
26916 次 |
| 最近记录: |