使用Python模块SMBus,Raspberry Pi输入/输出错误

时间:2014-10-27 18:42:58

标签: python raspberry-pi ioerror

我已经将Raspberry Pi和一块单独的板连接到一个自制的I²C电平转换器,并安装了Python模块SMBus,Raspberry Pi可以与另一块板上的PiGlow进行通信,但每隔一段时间我就得到一个输入尝试命令时输出错误信息:

  

bus.write_i2c_block_data(地址,信号,数据)

它说:

  

IOError:[Errno 5]输入/输出错误

我通过这篇文章找到了一个解决方法:Input/output error using Python module SMBus, a Raspberry Pi and an Arduino(这或多或少是对这个问题的跟进)

我目前正在尝试抓住那些给我错误的电话:

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

可以很好地解决i / o错误。我的问题是,由于所有的try-catch,代码似乎运行速度明显变慢。我想知道是否还有其他已知的工作,如果有更有效的方法来做到这一点。任何帮助将不胜感激!

由于

1 个答案:

答案 0 :(得分:0)

您是否在Serial.print的接收中断处理程序中呼叫separate board或类似内容?如果是,可能是问题所在。例如,在Arduino上,应避免在中断内调用Serial.xxx函数。