首页 > 解决方案 > 为什么我的 pyserial 端口在 if 语句中不起作用?

问题描述

我可以打印“阅读”变量,但我不知道如何在“if 语句”中使用它。正如我所说,它会打印我从 microbit 发送到计算机的字符串,但是当我检查字符串是否为 ==“A”时,它不会打印“它有效”EKS:

import keyboard
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
serialInst = serial.Serial()

portList = []

for onePort in ports:
        portList.append(str(onePort))
        print(str(onePort))

serialInst.baudrate = 115200
serialInst.port = "COM3"
serialInst.open()

while True:
    if serialInst.in_waiting:
        packet = serialInst.readline().decode('utf-8')
        print(type(packet))
        print(packet)
        if packet == "A":
                print("itworks")
        #print(packet.decode('utf'))
        if keyboard.is_pressed('esc'):
                break

标签: serial-portportpyserial

解决方案


我发现:你必须剥离“数据包”所以现在它看起来像这样:

if packet.strip() == "A":
    print("it works") 

推荐阅读