天天看點

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

一、樹莓派的引腳插針i2c通訊打開

sudo raspi-config

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

上下方向鍵選擇編号,左右方向鍵選擇下面兩個,我們選擇第5個interfacing options

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法
樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

選擇i2c接口

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法
樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

 然後輸入sudo reboot重新開機樹莓派即可這樣一來樹莓派的設定已經完成。

裝置連接配接好後我們就可以查找傳感器的i2c通信位址,

安裝好i2c庫和工具

sudo apt-get install i2c-tools

查 看挂載了幾個i2c

ls /dev/*i2c*

之後我們就會發現出現了這個檔案 i2c-1 ,有些會看到i2c-0、i2c-1、i2c-2等幾個檔案

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

接入i2c通訊的傳感器,這裡用 sht30 溫濕傳感器為例子

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

然後檢視傳感器位址

sudo i2cdetect -y -a 1 

說明:i2cdetect -y -a 1   後面的1,有可能是0,1,2, 根據上面ls /dev/*i2c* 檢視的結果

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

0x44就是sht30的通信位址

二、用i2cdump檢視器件所有寄存器的值,這個很有用:

輸入指令:i2cdump -y -f 總線 器件位址,

比如:

i2cdump -y -f 1 0x48

或上文提到的 0x44

樹莓派i2c通訊 設定 和 檢視 i2c通信位址方法

三、i2cset & i2cget指令

用i2cset設定單個寄存器值,用i2cget讀取單個寄存器值,可以在初期調試時發揮很大作用,一旦有預期的現象出現,就可以用i2cdump讀出整個寄存器的值,然後固化到代碼中: i2cget -y -f i2c總線 器件位址 寄存器位址 i2cset -y -f i2c總線 器件位址 寄存器位址 要寫入的值

[email protected]:/# i2cget -y -f 1 0x48 0x040

 0x1f

 [email protected]:/# i2cset -y -f 1 0x48 0x040 0x22

 [email protected]:/# i2cget -y -f 1 0x48 0x040

 0x22

 [email protected]:/#