樹莓派與I2C裝置通訊

2021-09-12 11:24:29 字數 1934 閱讀 2397

dtparam=i2c1=on

dtparam=i2c_arm=on

2、安裝i2c庫和工具

$ sudo apt-get install i2c-tools
3、檢視i2c裝置位址

以上,0x10,0x3c就是模組的i2c通訊位址

1、讀裝置所有資料

$ sudo i2cdump -y 1

0x10

-y 取消使用者互動,直接執行命令

1 i2c裝置號

0x10 i2c裝置位址

以上為0x00到0xff位址範圍內的所有資料

2、資料寫入

$ sudo i2cset -y 1

0x10

0x00

0x55

向裝置位址為0x10的0x00暫存器位址寫入0x55

3、暫存器資料讀取

$ sudo i2cget -y 1

0x10

0x1a

讀匯流排位址為0x10裝置的0x1a暫存器位址的資料

4、對16位資料的讀

$ sudo i2cdump -y 1

0x10 w

安裝smbus庫

$ sudo apt-get install python-smbus
**

import smbus

import time

bus = smbus.smbus(1)

addr =

0x3c

recount_th0=

0x1a

# 對8位資料讀寫

data = bus.read_byte_data(address, recount_th0)

print

(data)

bus.write_byte_data(address, recount_th0,

0x99

)#對16位資料的讀寫

data=bus.read_word_data(address,recount_th0)

print data

bus.write_word_data(address,recount_th0,

0x01d6

)

注:bus = smbus.smbus(1)在樹莓派版本2中,i2c裝置位於/dev/i2c-1,所以此處的編號為1。

python封裝smbus操作函式具體**請檢視:

1、檢視i2c裝置的速率

$ sudo cat /sys/module/i2c_bcm2708/parameters/baudrate
預設的i2c速度為100khz,對於多數i2c裝置而言100khz並不算快,但是對於個別的i2c裝置而言100kzh還是太快了,那麼也可以修改i2c的速率使得通訊更穩定。

2、修改速率

進入/etc/modprobe.d 目錄,並在該目錄下新建乙個costom.conf檔案,在該檔案中插入options i2c_bcm2708 baudrate=32000,32000便為新的i2c速率,最後請重啟系統。

樹莓派啟用i2c裝置

樹莓派已經整合了i2c驅動,只需要啟動就行.修改配置檔案 接下來啟動i2c模組 sudo apt get install i2c tools python smbus將pi使用者新增至i2c組 sudo adduser pi i2c重啟 sudo shutdown r now連線i2c裝置,並執行如...

樹莓派I2C匯流排連線裝置

出現問題 pi raspberrypi sudo i2cdetect y 1 error could not open file dev i2c 1 or dev i2c 1 no such file or directory 原因 配置中沒有設定i2c,解決 進入配置介面 使能i2c 解決方案 s...

樹莓派i2c功能

預設i2c是關閉的,用raspi config 命令,會彈出乙個配置框圖 選擇enable i2c就可以了 reboot之後 沒有在 dev 目錄下發現i2c x的裝置,這個時候需要做以下操作 1.新增i2c模組 sudo nano etc modules 然後新增以下兩行內容 i2c bcm270...