2016-12-29 69 views
0

我想使用PYTHON或最后的选择C配置I2C的树莓派。我曾在ATMEL微控制器上工作,它提供与任何设备的I2C通信。我想要一些类似的覆盆子pi机制。我有以下问题:

1.我们必须在I2C总线中定义每个器件的地址。如果我想从ATMEL微控制器发送一些数据到树莓派(将数据写入树莓派),那么树莓派的地址是什么,或者我们如何设置地址。

2.如果我们在I2C总线上收到一些数据,是否有任何中断或类似情况?

3.哪个库最适合PYTHON或C?

4.我可以编写自定义代码来实现I2C协议吗?使用Python的树莓派中的I2C通信

请帮助....在此先感谢..

+0

关于地址,你必须定义网络中的所有设备的地址。它可以在0-127范围内。 –

+0

某些设备的yaa地址是固定的,但对于微控制器,我们可以选择任何地址0-127。什么是覆盆子pi的地址,或者我们如何在其中定义地址?我在python代码中找不到任何定义覆盆子pi地址的东西。 –

+0

AFAIK树莓派不能作为奴隶经营。因为它必须是一个主人,所以地址实际上并不重要。 – user58697

回答

0

我建议你使用i2c-devi2c-bcm2708模块,在那里你会接触到/ dev文件系统的I2C总线。

$ sudo modprobe i2c-dev 
$ sudo modprobe i2c-bcm2708 

现在将会有I2C总线上输出,与

$ ls /dev/i2c-* 

一一列举了使用它不是那么简单,因为它是I2C,它有不同的协议和地址。

如果打算在C中使用它,这是tutorial

在Python中,你可以安装i2cdev包,并用它作为这样的:

from devi2c import I2C 
device, bus = 0x42, 0 
i2c = I2C(device, bus) 
value = i2c.read(1)   # read 1 byte 
i2c.write(b’some raw data’)  # write bytes 
i2c.close()     # close connection 
+0

感谢您的回答..假设我想从微控制器发送一些数据到覆盆子pi ..然后第一个字节将是pi + 1位写位(0)的7位地址.. 我应该在这里使用什么地址? ? –