2013-07-09 98 views
0

我用串口線連接了我的智能電錶。但是,使用PySerial檢索數據時,我總是得到這些行:PySerial接收奇怪的數據

b'\x00\n' 
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 
\x00\x00\x00\x00\x00\x00\x00\x00 

最終,我得到的一些數據,但即使不是全部。

輸出應該是這樣的:

/ISk5\2ME382-1003 
0-0:96.1.1(4B414C37303035313039) 
1-0:1.8.1(00180.724*kWh) 
1-0:1.8.2(00001.416*kWh) 
1-0:2.8.1(00000.000*kWh) 
1-0:2.8.2(00000.000*kWh) 
[...] 
! 

我的腳本:

import sys 
import serial 

ser = serial.Serial() 
ser.baudrate = 9600 
ser.bytesize=serial.SEVENBITS 
ser.parity=serial.PARITY_EVEN 
ser.stopbits=serial.STOPBITS_ONE 
ser.xonxoff=0 
ser.rtscts=0 
ser.timeout=None 
ser.port="/dev/ttyUSB0" 

ser.open() 
count=0 
stack=[] 
while count < 25: 
    p1_raw = str(ser.readline()) 
    print(p1_raw) 
    count=count+1 

ser.close() 
exit 

這個問題似乎是與Python/PySerial。使用cu或minicom時,數據會被正確接收。

任何想法?

回答

3

嘗試不同的設置後,這似乎已經解決了這個問題:

ser.xonxoff = 1