有关于树莓派I2C的问题,I2C的开启,GPIO模拟I2C

最近在做树莓派+红外测温+光照检测的项目,这两个元器件都需要I2C接口。

在树莓派的原理图中,确实是有两个I2C的pin,分别是SDA.1/SCL.1和SDA.0/SCL.0
但是在测试中,只有.1可以用,.0扫描不到

在一个哥们的blog中,做法是将用作管理摄像头的i2c0开启,博客地址如下:https://blog.csdn.net/weixin_46145842/article/details/106128144。
按照步骤做完,用i2cdetect -l 是可以扫描到i2c的,但i2c接口分别是i2c1(一开始就有的),i2c0,i2c10,i2c11。用i2cdetect -y -a 0是扫描不到器件地址的。

你们可以测试一下如上所说博主的方法,如果管用的话是最好。但我没有测试管用。

在其他网站搜索得知i2c0是管其他设备的,开启不了。但可以采用的做法是,用gpio来模拟i2c
具体做法是:
【1】打开config文件,命令:sudo vim(nano) /boot/config.txt
【2】在配置文件中,加入如图所示语句,实现gpio模拟i2c
	dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=2,i2c_gpio_sda=20,i2c_gpio_scl=21
【3】记得reboot
【4】需要注意的是:我为了语句可读性好,将最下面的一大行命令拆分成了好几行,没用逗号。但是这两种做法得到的结果是完全不一样的,搞不懂,希望有知道的兄弟可以评论一下
【5】i2c_gpio_sda=20,i2c_gpio_scl=21中的20,21指的是树莓派的BCM编码,对应的gpio口分别为GPIO.28和GPIO.29
【6】扫描结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7dee8b5aa97347a7acee187a086e1cc4.png)

在这里插入图片描述
【7】在程序中,记得将BUS序号改一下,记得将器件扫描地址改一下

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值