簡體   English   中英

如何將 ser.readline.rstrip() 與 Python 中的簡單單詞或變量進行比較?

[英]How to compare ser.readline.rstrip() with a simple word or variable in Python?

我想用這個簡單的 Python 腳本對串行輸入做出反應:

import serial

ser = serial.Serial('COM7', baudrate=9600, timeout=1)

while True:
    data = ser.readline().rstrip()
    print(data)
    if (data == 'ON'):
        print("I received: ON")

我在我的電腦上運行這個腳本,Arduino 連接到 COM7。 它的代碼如下所示:

void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.println("ON");
  delay(500);
}

cmd輸出:

b'ON'
b'ON'
b'ON'
b'ON'

如您所見,串行通信正常,計算機接收數據,但如何檢查某個字或某個數字? 我的錯誤是什么?

先感謝您。

是的,我知道,那里有一個標題相同的問題,但它對我不起作用。

從您的 output 可以看出,您收到的數據是字節(注意開頭的b )。

您必須將其解碼為字符串:

data = data.decode('utf8')  # or any other encoding used by the data source

然后您可以將其與任何字符串進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM