我正試圖開發一個應用程序通過串行端口與pyserial通信兩臺計算機。與PySerial的雙向串行端口通信
其基本思想是在兩個方向上發送幾個命令。
Computer A ---- INI ----> Computer B
Computer A <--- OKINI --- Computer B
Computer A ---- OK -----> Computer B
的計算機A上的代碼是:
s = serial.Serial(port='/dev/ttyUSB0', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
s.flushOutput()
s.write("*INI,COMPUTER_A*")
s.flushInput()
data = s.read(18)
if data:
print data
s.flushOutput()
s.write("*OK,COMPUTER_A*")
s.close()
爲計算機B的代碼是:
s = serial.Serial(port='/dev/ttyUSB0', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
s.flushInput()
data = s.read(16)
if data:
print data
s.flushOutput()
s.write("*OKINI,COMPUTER_B*")
s.flushInput()
data2 = s.read(15)
if data2:
print data2
s.close()
兩個代碼正常工作的時候。有時候執行輸出會變成垃圾。我不知道是什麼問題。我用PySerial從串行端口發送和寫入錯了什麼?
在串口讀寫是否更好實現線程監聽和線程讀取,一個是listen還是另一個是寫?
但是,爲什麼當我從行中讀取時,輸出中有很多garbagge? – dseira