1

我是 python 新手,如果这是一个超级简单的问题,请原谅我。我目前有一个 arduino 通过串口发送 3 个值。在此之后,它被解码和拆分。如果值 1 高于 120,我只想将一行值记录到 csv。每当我尝试这个时,代码都会立即中断。谢谢你。

import serial
import csv


Finger = "1"
ser = serial.Serial('COM6', 9600)

while True:
    try:
        data = ser.readline()
        decode = (data[0:len(data)-2].decode("utf-8"))
        datasplit = decode.split('-')
        Val1 = datasplit [0]
        Val2 = datasplit [1]
        Val3 = datasplit [2]
        print(Val1)
        with open("EMGSig16.csv","a") as f:
            writer = csv.writer(f,delimiter=",")
            if Val1 >= 120:
                writer.writerow([Finger,Val1,Val2,Val3])
            else:
                continue
    except:
        break

编辑:抱歉延迟回复(我在第三班工作)。这是我的正常值的屏幕截图,没有阈值 Normal Value 1。当我重新添加阈值时,我得到了这个With Threshold

4

1 回答 1

0

我只是随机删除了 Try and Exception,因为我认为这可能会破坏代码并且它有效!没有解释为什么,但如果其他人有这个问题,这是我的最终代码:

import serial
import csv


Finger = "1"
ser = serial.Serial('COM6', 9600)

while True:
        data = ser.readline()
        decode = (data[0:len(data)-2].decode("utf-8"))
        datasplit = decode.split('-')
        Val1 = int(datasplit[0])
        Val2 = int(datasplit[1])
        Val3 = int(datasplit[2])
        print(Val1)
        if Val1 >= 100:
            with open("EMGSig17.csv","a") as f:
                writer = csv.writer(f,delimiter=",")
                writer.writerow([Finger,Val1,Val2,Val3])
        else:
            continue
于 2019-07-26T15:22:41.040 回答