首页 > 解决方案 > 当数据到达python中的串口时触发的功能

问题描述

我通过在单独的线程中连续读取而检查传入的数据。我不希望它一直工作。有没有只有数据到达时才会触发的功能?

我的代码:

import threading
import serial

connected = False
port = "COM3"
baud = 115200

serial_port = serial.Serial(port, baud, timeout=0)

def handle_data(data):
    print(data)

def read_from_port(ser):
        select_read(serial_port)
        serin = ser.read()
        connected = True

        while True:
           reading = serial_port.in_waiting
           reading = ser.readline().decode()
           if len(reading) > 5:       
                handle_data(reading)


def set_data():
    while True:
        print("input: ")
        num1 = str(input())
        serial_port.write(num1.encode());

thread = threading.Thread(target=read_from_port, args=(serial_port,))
thread2 = threading.Thread(target=set_data)
thread.start()
thread2.start()

标签: pythonpython-3.xserial-port

解决方案


推荐阅读