我得到了以下問題:pySerial的神祕行爲
我在這裏有一個Arduino連接到我的Mac。 Arduino正在讀取並響應串行數據。 我做了一個小python3腳本,它接受用戶輸入並使用 pySerial將命令'set(13,255)〜'寫入Arduino。 這僅僅是工作的罰款:
while 1:
cmd = input("<<< ")
cmd += '~'
if cmd != "~":
serialPort.write(cmd.encode())
output = str(serialPort.readline()).upper()[2:-5]
if output != " ":
print(">>> ", output)
這裏的問題:
如果我想送一些「自動化」的劇本中,例如命令在一個循環中,Arduino不再響應,即使發送的命令是 也一樣,也是編碼的,類型爲「字節」。
for i in range[0, 256]:
cmd = 'set(13, '
cmd += str(i)
cmd += ')~'
serialPort.write(cmd.encode())
time.sleep(0.1)
奇怪的是,如果我首先聲明變量(CMD)作爲輸入,其也工作正常,但是這意味着手動中斷每命令是發送時間。
cmd = input()
cmd = 'set(13, '
cmd += str(i)
cmd += ')~'
經過幾個小時的研究,我完全不知道問題可能是什麼。正如我所說的,數據類型在編碼之後總是字節。
嘗試添加一個serialPort.flush後寫調用 – MrSykkox
不幸的是,這是行不通的。 – rckey