I2C 检测不到?硬件问题还是其他问题?

Jer*_*abu 5 i2c raspberry-pi3 mpu6050

我一直在研究一些 i2c 示例。把它全部插在一起,我发现我需要安装 i2c-tools 包,然后使用 raspi-config 启用 I2C 系统。

WiringPi gpio 命令有一个 i2cdetect 命令的快捷方式,运行它会给出

在此处输入图片说明

前 3 周一切正常,检测到 68。我不明白是什么问题!!!谁能帮我解决这个问题。

小智 5

I2C 总线允许多个设备连接到您的 Raspberry Pi,每个设备都有一个唯一的地址,通常可以通过更改模块上的跳线设置来设置。能够查看哪些设备连接到您的 Pi 是非常有用的,可以确保一切正常。

为此,值得在终端中运行以下命令来安装 i2c-tools 实用程序。

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
Run Code Online (Sandbox Code Playgroud)

如果您不使用现代 Raspbian 或者您想手动完成,也可以!打开 LXTerminal 或控制台或 ssh 并输入以下命令:

sudo nano /etc/modules
Run Code Online (Sandbox Code Playgroud)

并将这两行添加到文件末尾:

i2c-bcm2708
i2c-dev
Run Code Online (Sandbox Code Playgroud)

然后使用 Control-X Y 保存文件

根据您的发行版,您可能还有一个名为/etc/modprobe.d/raspi-blacklist.conf

如果您没有此文件,则无需执行任何操作,但是,如果您有此文件,则需要对其进行编辑并注释掉以下行:

blacklist spi-bcm2708
blacklist i2c-bcm2708
Run Code Online (Sandbox Code Playgroud)

..在它们前面放一个#。

通过键入以下内容打开文件编辑器:

sudo nano /etc/modprobe.d/raspi-blacklist.conf
Run Code Online (Sandbox Code Playgroud)

如果您运行的是最新的 Raspberry Pi(3.18 内核或更高版本),您还需要更新/boot/config.txt file. 编辑它并sudo nano /boot/config.txt添加文本

dtparam=i2c1=on
dtparam=i2c_arm=on
Run Code Online (Sandbox Code Playgroud)

在底部。请注意,“i2c1”中的“1”是 1,而不是 L!

全部完成后,重启!

现在,当您登录时,您可以键入以下命令来查看所有连接的设备

sudo i2cdetect -y 1
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用的是最早的 Raspberry Pi 之一(256MB Raspberry Pi Model B),那么您需要将命令更改为:

sudo i2cdetect -y 0
Run Code Online (Sandbox Code Playgroud)