psSerial: how to write a single byte value to the serial port?

SoftwareTester mr_ravi_patil at yahoo.com
Wed Nov 17 14:53:57 EST 2004


Thanks for the reply. 

I want to write a single byte with  hex representation 0x40 to the serial port
 -- just a single byte.

I assume the string print ser.write() will append null characters to the end.

Maybe the chr() will write only a single byte and nothing more.

I will try 

byte = chr(0x40)
ser.write(byte)



bokr at oz.net (Bengt Richter) wrote in message news:<419b2f5f.282498301 at news.oz.net>...
> On 17 Nov 2004 00:57:23 -0800, mr_ravi_patil at yahoo.com (SoftwareTester) wrote:
> 
> >http://pyserial.sourceforge.net/ 
> >example shows how to write string to serial port.
> >
> >
> >#Open port 0 at "9600,8,N,1", no timeout
> >
> >>>> import serial
> >>>> ser = serial.Serial(0) #open first serial 
> >>>> ser.write("hello") #write a string
> >>>> ser.close() #close port
> >
> >how do i write a single byte value to the serial port?
> 
> How is your single byte represented? A hex representation of the
> _numeric_ code for a single character? E.g., you may need to convert
> to a character string of length one (which the chr function does)
> in order to pass it to ser.write (which apparently accepts the
> 5-char string "hello" all right).
> 
>  >>> 65
>  65
>  >>> chr(65)
>  'A'
>  >>> 0x41
>  65
>  >>> chr(0x41)
>  'A'
> 
> thus, perhaps something like
> 
>     ser.write(chr(0x41))
> 
> or
> 
>     byte = chr(0x41)
>     ser.write(byte)
> 
> (Untested, just judging from the example outputting "hello" above ;-).
> 
> Regards,
> Bengt Richter



More information about the Python-list mailing list