2016-07-19 82 views
0

我有一個Python代碼,通過RS232獲得串口數據

import serial 
import time 

ser = serial.Serial('/dev/ttyUSB0', 2400, timeout=1) 

while True: 
str1 = ser.read(1) 
if str1 == '': 
    print 'no data on line' 
else: 
    print str1 

這將返回我讀串口數據的平均值

no data on line 
no data on line 
no data on line 
no data on line 
206 
210 
212 
200 

它的MIC-讀數值 假設這些數字度移動電機 我想獲得avarage號碼來移動電機。

回答

0
import serial 
import time 
data_sum = [] 
ser = serial.Serial('/dev/ttyUSB0', 2400, timeout=1) 

while True: 
    str1 = ser.read(1) 
    if str1 == '': 
     print 'no data on line' 
    else: 
     data_sum.append(int(str1) 

ave = sum(data_sum)/len(data_sum) 
+0

append和extend有什麼區別? –

+0

append將一個元素添加到列表中。 extend將列表添加到列表中 - 不是作爲子列表,而只是「擴展」列表 –

+0

我只是通過在頂部添加data_sum作爲空列表來修復代碼。每行數據都附加到列表中。最終,平均值被採用 –