[英]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.