簡體   English   中英

讀取Python 2.7串口RS232數據(2字節)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM