PySerial。串行读取期间无法进行任何输入

因此,我正在尝试通过pyserial库使用python与Arduino进行串行通信。我有一阵子True循环,正在读取从Arduino发送的数据,但是,我希望能够通过使用ser.write从Arduino发送一些东西,但是,我无法这样做。

import serial
import sys
import time
import pynput


from pynput import keyboard


ser = serial.Serial('COM4', baudrate = 9600, timeout = 20)





while True:

        print(ser.readline().decode('utf-8'))






def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        return False


with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

listener = keyboard.Listener(
    on_press=on_press,
    on_release=on_release)
listener.start()

我还使用Pynput库来查找键盘上按下的键,稍后我将对其进行修改,例如,如果按下键0,则为ser.write等等。我只是无法使其正常工作,因此它将打印出我所使用的任何键按下它始终等待的ser.readline。有人可以帮我解决这个问题吗?

总之,我希望能够在串行读取过程中输入一些键。

谢谢