0
我有一個Arduino報告時間(以秒爲單位),電壓,電流和焦耳歷時60秒。在這樣的串行監控:使用PySerial從Ardunio獲取更新只需每2分鐘而不是1分鐘
time,voltage,current,joules
60,1.45,0.39,0.57
120,1.45,0.39,1.13
180,1.45,0.39,1.70
240,1.45,0.39,2.26
...
但是下面的Python腳本我沒有得到這樣的結果:
import serial
ser = serial.Serial('COM5', 9600)
logfile = open("batterytest.log", 'w')
while True:
if ser.readline() == b'Test Complete!':
logfile.close()
exit()
logfile.write(ser.readline().decode("utf-8"))
logfile.flush()
相反,我看到的結果每120秒:
time,voltage,current,joules
120,1.13,0.02,0.05
240,1.13,0.02,0.09
360,1.13,0.02,0.14
480,1.13,0.02,0.19
....
您正在閱讀的兩倍,因此每次迭代都會消耗兩行。 –
是的,如@KlausD。表示,第一次讀取在'if ser.readline()== b'Test Complete!':'中,第二次讀取在'logfile.write(ser.readline()。decode(「utf-8」))''處。將讀取的行存儲在一個臨時字符串中。 –
Everyon是對的。我不知道爲什麼我在查看代碼時沒有遇到這種情況。我建議修改。 – Russ960