一:I2C简介
I2C–两线式串行总线 – 同步通信的特殊形式
通过串行数据(SDA)线和串行时钟(SCL)线连接到总线的器件间传递信息,每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器(由器件的功能决定),LCD只能作为接收器,而存储器可以接收也可以发送。
二:配置I2C接口,读取i2c设备的地址
- 可以通过raspi-config配置 或者通过编辑/boot/config.txt文件加入:
dtparam=i2c1=on
dtparam=i2c_arm=on
2. 安装I2C库和工具
sudo apt-get install i2c-tools
3 . 连接上设备后,通过一下命令查看
sudo i2cdetect -y -a 1
三, 对i2c设备寄存器读写
1.设备所有数据的读出
sudo i2cdump -y 1 0x2a
-y代表取消用户交互过程,直接执行命令
1 代表i2c设备号
0x2a代表设备地址
该命令会到处0x00 到0xff范围内的所有数据
- 数据的写入
使用
sudo i2cset -y 1 0x2a 0x1a 0x55
即可向设备地址为0x2a的0x1a的存储器地址写入0x55
3, 寄存器数据读出
sudo i2cget -y 0x2a 0x1a
即可读出总线地址为0x2a设备的0x1a寄存器的数据
4, 对16位数据的度
在基本的命令后面加上w即可实现
四,i2c编程
sudo apt-get install python-smbus
import smbus
或者import smbus.SMBus
创建一个smbus实例
b = smbus.SMBus(1)
0 代表/dev/i2c-0 1 代表/dev/i2c-1
具体根据使用树莓派的那个i2c来决定
# 使用i2c函数
b.read_byte_data(0x2f, 0x58)