树莓派 I2C通信

文章目录

  • 学习记录
    • 配置raspi-config
    • 添加开机启动
    • 去除黑名单
    • 装载设备
    • 确认装载成功
    • 安装i2c-tools
    • 查询设备
    • 读取寄存器全部内容
    • 写寄存器
    • 读寄存器
    • 查看波特率
    • 修改波特率

学习记录

虽然网上关于I2C的教程很多,但是有很多都是复制粘贴的,自己都没有真正搞懂,也容易误导别人。我自己查找、思考、实践以后,把自己的经验写下来。

配置raspi-config

在终端输入命令

sudo raspi-config

选中Advanced Options,选中I2C,使能I2C。

添加开机启动

终端输入命令

sudo nano /etc/modules

添加

i2c-bcm2708
i2c-dev

保存后退出。

去除黑名单

终端输入

sudo nano /etc/modprobe.d/raspi-blacklist.conf

若文件内包含

blacklist i2c_bcm2708

则在行首加“#”,若没有,直接退出。(本人测试没有)

装载设备

终端输入

sudo modprobe i2c_bcm2708

装载设备

确认装载成功

终端输入

lsmod 

若是能够发现

i2c_dev
i2c_bcm2708

则说明装载成功。

安装i2c-tools

可先用

i2cdetect -y 1

检查是否已经安装了i2c-tools(本人测试系统已经安装好)。若没有安装,则终端输入

sudo apt-get install i2c-tools

进行安装。

查询设备

终端输入

i2cdetect -y 1

输出结果
树莓派 I2C通信_第1张图片
若是没有i2c设备,应该全为“- -”。我连接了一个e2prom。所以显示了一个设备。

读取寄存器全部内容

通过i2cdump指令可导出I2C设备中的所有寄存器内容。
终端输入

i2cdump -y 1 0x50

-y为忽略交互,1为设备号,0x50为设备地址。
输出结果
树莓派 I2C通信_第2张图片

写寄存器

需要向I2C设备中写入字节时,可输入指令i2cset -y 1 设备地址 寄存器地址 写入内容

i2cset -y 1 0x50 0x00 0xff

读寄存器

需要读取I2C设备寄存器某字节时,可输入指令i2cget -y 1 设备地址 寄存器地址

i2cget -y 1 0x50 0x00

查看波特率

sudo cat /sys/module/i2c_bcm2708/parameters/baudrate 

不知道为啥,波特率为0,但是i2c能够正常使用。

修改波特率

法一:

modprobe i2c_bcm2708 baudrate=32000

没有任何作用
法二:
进入/etc/modprobe.d 目录,并在该目录下新建一个costom.conf文件,在该文件中插入options i2c_bcm2708 baudrate=32000,32000便为新的I2C速率,最后请重启系统。
压根连文件都无法创建
由于i2c能够正常使用,就没有在这儿过多纠结。

你可能感兴趣的:(树莓派)