2
我試圖測試從串行端口接收到的數據,似乎無法做到正確。我需要檢查,如果在一個包內收到的第一個字節是0xBE這樣的:從串行端口測試字節
#ser is instance of pyserial serial object
data=ser.read(5)
print "serial RX: " + binascii.b2a_hex(data)
if data[0] != 0xBE:
print"wrong value"
始終打印:
serial RX: beef000008
wrong value
即使以ASCII打印二進制顯示正確的值已收到。
我在哪裏錯了這個真正的基本任務?
謝謝, 羅賓。
那麼爲什麼你不打印出數據[0],數據[1],數據[2]和數據[3],看看有什麼? –
如果我打印數據[0]我得到一個3/4字符是chr(0xBE),所以它是正確的值(也由bin2ascii確認),但serial.read()應該返回一個字節對象在python> = 2.4根據文檔。這真的是一個字符串嗎? – user2512377
我認爲字節是一些字符串。現在就閱讀它。但在任何情況下,你的情況的解決方案是比較數據[0]和字符串(0xbe),然後:) –