2016-12-29 72 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位地址.. 我應該在這裏使用什麼地址? ? –