2014-10-27 50 views
0

我已用自制I²C電平移位器連接的樹莓Pi和一個單獨的板一起,並安裝了Python模塊的SMBus,樹莓裨可以與所述PiGlow在通信輸出誤差其他董事會,但每隔一段時間我試圖命令時得到一個輸入/輸出錯誤信息:輸入/使用Python模塊的SMBus,樹莓裨

bus.write_i2c_block_data(address, signal, data)

它說:

IOError: [Errno 5] Input/output error

我找到了一個工作,圍繞它通過這篇文章:Input/output error using Python module SMBus, a Raspberry Pi and an Arduino(這或多或少是一個跟進的是疑問句薦)

我公司目前擁有的try-catch的身邊,給了我的錯誤,像這樣的電話:

try: 
    bus.write_i2c_block_data(address, signal, data) 
except IOError: 
    subprocess.call(['i2cdetect', '-y', '1']) 

這工作完全正常來解決I/O錯誤。我的問題是,由於所有的try-catch的,代碼似乎運行顯著慢。我想知道是否有另一種已知的解決辦法,如果有這樣做更有效的方式。任何幫助,將不勝感激!

感謝

回答

0

你打電話Serial.print或您separate board的接收中斷處理程序相似?如果是的話,這可能是問題所在。在一個Arduino,例如,一個應該避免調用中斷內部Serial.xxx功能。