我有一個Python腳本,它通過pySerial將數據包寫入Arduino板。 有時在將代碼寫入主板時,pySerial會引發errno 5的輸入/輸出錯誤。使用pySerial從Python獲取輸入/輸出錯誤
一些研究表明,這表示在寫入表示與Arduino板連接的文件時出現錯誤。
發送的代碼,只發送單字節的數據包:
try:
# Check if it's already a single byte
if isinstance(byte, str):
if len(byte) == 1: # It is. Send it.
self.serial.write(byte)
else: # It's not
raise PacketException
# Check if it's an integer
elif isinstance(byte, int):
self.serial.write(chr(byte)) # It is; convert it to a byte and send it
else: raise PacketException # I don't know what this is.
except Exception as ex:
print("Exception is: " + ex.__getitem__() + " " + ex.__str__())
由該代碼印刷錯誤是:
OS錯誤輸入/輸出錯誤errno的5
我的代碼在發送時有問題嗎?我是否需要檢查串行連接是否準備好發送或發送後是否有延遲? 或者硬件或與硬件的連接有問題嗎?
編輯:我查看了pyserial的Linux實現,實現只是將錯誤傳遞給我的代碼。所以從那裏沒有新的真正的見解。 有沒有一種很好的方法來測試程序中發生了什麼?
我有同樣的問題 - 你有任何想法如何趕上/防止這個錯誤? – 2013-05-13 18:07:26