[英]Python 2.7 serial port RS232 data read (2 Byte)
我有这个代码。
import time
import serial
# configure the serial connections
ser = serial.Serial(
port='/dev/ttyS0',
baudrate=2400,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.EIGHTBITS
)
ser.open()
ser.isOpen()
print ser.portstr
x=ser.read(1)
print type(x)
while True:
print x
time.sleep(1)
当我运行这段代码时,我得到的都是矩形字符(我不知道如何描述它-可能是某种类型的块元素???)。
所以我知道我收到的数据包括:
bit 0 1 2 3 4 5 6 7
LSB D0 D1 D2 D3 D4 D5 par "0"
MSB D6 D7 D8 D9 D10 D11 par "1"
整个数据以2字节为单位。 第一个字节为8位(D0-D5为数据,奇数奇偶校验后跟一个字,停止位为两个)。
我的问题是如何接收读取的此类数据以及如何将其转换为十进制...
谢谢
尝试:
binaryReceived = ser.read(2)
if len(binaryReceived)>=2:
decimalReceived = (binaryReceived[0]&0x1f) | (binaryReceived[1]&0x1f)<<5
print decimalReceived
else:
print "two bytes not received"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.