我有以下Python代码,它们只是从Arduino中读取并写入文件中:

import serial
from datetime import datetime
import time

ser = serial.Serial('COM3', 9600, timeout=0)

text_file = open("voltages.txt", 'w')

while 1:
    x=ser.readline()
    print(str(datetime.now()), x)
    data = [str(datetime.now()),x]
    text_file.write("{}\n".format(data))
    text_file.flush()
    time.sleep(1)


每当我中断脚本时,总是必须在控制台中键入ser.close(),否则我将无法再次启动脚本(在同一控制台中)。

每当我中断脚本时,如何自动关闭串行通讯?

最佳答案

使用try/finally块以确保调用close:

try:
    while 1:
        x = ser.readline()
        ....
finally:
    ser.close()

关于python - 中断代码时如何关闭串行连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49086627/

10-10 18:57