0
我有一些pyserial和windows的問題(在Linux上它使用相同的代碼工作正常);我似乎在寫錯誤的字節。PySerial寫入錯誤(波特率敏感)
該代碼甚至可以在debian虛擬機內的同一臺機器上正常工作,所以我非常肯定它的軟件。我使用Python 2.7.6 32位,pyserial 2.7但嘗試過其他人(2.5和2.4)都顯示相同的錯誤。
有趣的是,這些錯誤是多不頻繁時,波特率增加到115200
這是我的代碼的初步認識一下:
ser = serial.Serial()
ser.timeout = 0.1
ser.port = "COM74"
ser.baudrate = 9600
ser.bytesize = 8
ser.parity = "N"
ser.stopbits = 1
ser.open()
ser.write("AT+CMGR\r")
search("OK", 5, rec, ser)
ser.write("AT+CGSN\r")
search("OK", 5, rec, ser)
ser.write("AT+CSQ\r")
search("OK", 5, rec, ser)
ser.write("AT+CREG?\r")
search("OK", 5, rec, ser)
ser.close()
哪個測試時給出了下面的輸出:(寫入回波自動匹配裝置):
***Timeout***, expected: "OK" received: "A\xa8+CMGR\r"
***Timeout***, expected: "OK" received: "AT+C\x87SN\r\r\nERROR\r\n"
***Timeout***, expected: "OK" received: "AT+CS\xd1\r"
***Timeout***, expected: "OK" received: "A\xa8+CREG?\r"
我可以確認「rece ived:」(沒有引號並用的異常‘錯誤’及由該設備產生的一些CR NL字符)就是由該設備實際收到的:
A\xa8+CMGR\r
AT+C\x87SN\r
AT+CS\xd1\r
A\xa8+CREG?\r
如果任何人都可以提出一個修復我將葡萄柚
問題根本不在於設備,腳本在Linux上適用於同一設備,並且通過minicom/screen正常通信。 – jayjay