[python-win32] Trying to send info through serial port

Roberto Aguilar roberto.c.aguilar at gmail.com
Fri Jun 11 18:35:52 CEST 2010


On Jun 11, 2010, at 8:08 AM, Dan Ackerman wrote:
> Hello,
> I need to be able to send some information through my computer's serial port. I am using python version 2.6, the pyserial 1.21 module, and the pywin module. My code seems to be sending info somewhere, because any print statement I add after the import serial command doesn't show up in my terminal window. However, the device connected to my serial port doesn't seem to be registering any received information. I want to send the string "FREQ 720 MHz."
> 
> If anyone could help me out with this code, it would be greatly appreciated:
> 
> import serial
> ser = serial.Serial(0) #if port has specific name, use: ser = serial.Serial('portName', 19200, timeout=0)
> print ser.portstr #should tell you what specific port was used
> ser.write('FREQ 720 MHz')
> ser.close()

Dan,

In my experience connecting to a serial port does not cause prints to stop sending to stdout.  My guess is that ser.portstr is an empty string or None.  Try printing this instead to test that theory:

print 'portstr: "%s"' % (ser.portstr,)

My bet is you get: portstr: ""

Secondly, what COM port are you connecting to?  If, for example, you're connecting to COM1 and the baud rate is 19200, try this:

ser = serial.Serial('COM1', 19200, timeout=0)

Finally, highly dependent on the device you are sending data to, maybe you're missing a newline or something at the end of the string you are sending?

ser.write('FREQ 720 MHz\n')

Good luck,
-Roberto.


More information about the python-win32 mailing list