Pyserial example program error: win32file.SetupComm reports 'Incorrect function.'

Ron Jackson Ron at FascinatingElectronics.com
Wed Feb 7 14:14:39 EST 2007


I am using Python 2.5 on Windows XP. I have installed Pyserial and
win32all extensions.

When I try to run the example program scan.py (included below), or any 
other program using pyserial, as soon as it hits the statement:

s = serial.Serial(i)

I get the error:

Traceback (most recent call last):
   File "C:\Python25\Doc\PySerial Examples\scan.py", line 26, in <module>
     for n,s in scan():
   File "C:\Python25\Doc\PySerial Examples\scan.py", line 17, in scan
     s = serial.Serial(i)
   File "C:\Python25\Lib\site-packages\serial\serialutil.py", line 156,
in __init__
     self.open()
   File "C:\Python25\lib\site-packages\serial\serialwin32.py", line 57,
in open
     win32file.SetupComm(self.hComPort, 4096, 4096)
error: (1, 'SetupComm', 'Incorrect function.')

What do I need to do to fix this? Thanks for the help!

   -- Ron


The example program scan.py (from the pyserial examples folder):
-----------------------------------------------
#!/usr/bin/env python
"""Scan for serial ports.
Part of pySerial (http://pyserial.sf.net)  (C)2002-2003 <cliechti at gmx.net>

The scan function of this module tries to open each port number
from 0 to 255 and it builds a list of those ports where this was
successful.
"""

import serial

def scan():
     """scan for available ports. return a list of tuples (num, name)"""
     available = []
     for i in range(256):
         try:
             s = serial.Serial(i)
             available.append( (i, s.portstr))
             s.close()   #explicit close 'cause of delayed GC in java
         except serial.SerialException:
             pass
     return available

if __name__=='__main__':
     print "Found ports:"
     for n,s in scan():
         print "(%d) %s" % (n,s)



More information about the Python-list mailing list