树莓派4B学习笔记——IO通信篇(I2C)_树莓派i2c

在这里插入图片描述
例如智能车竞赛中的摄像头就是采用的并行通信。(以上图片来自此文
现场总线:可以远距离传输 can (10km) 485(1km) //差模信号
工业控制中常用。
板级总线:芯片之间通信----近距离 IIC SPI //共模信号
一般的元器件间的通信方式。
同步通信:通信双方使用同一个时钟源(时钟频率)
异步通信:通信双方使用自己的时钟源
有关通信的具体分类见此博文

I2C简介

I2C是利浦公司推出的双向二线制总线,SCL时钟线和SDA数据线,用于数据传输,按照上面提到的知识点分类I2C是串行半双工板级同步有线传输总线。
一条总线挂载多个IIC接口器件-----并行连接在IIC总线上。
有关一组I2C总线最多可以挂接多少个I2C器件以及I2C的详细介绍大家参考此博文
在这里插入图片描述
有关I2C的传输流程,之前看见过以为博主把整个流程和踢球做了个类比,我觉得很形象,这里链接分享给大家
在这里插入图片描述
有关I2C的详细知识大家参考上述博文了解就好,笔者在此不做分析了,下面进入主题:使用树莓派的I2C。

树莓派4B+0.96OLED(I2C协议)

查询接口

打开终端命令,输入gpio readall,回车,在返回的IO表中可以看见有SDA1、SCL1;SDA0,SCL0两组I2C接口,我们使用SCL1与SDA1这一组进行。
在这里插入图片描述

硬件连接

接线方式如下:

树莓派 OLED
5V VCC
GND GND
3脚(SDA1) SDA
5脚(SCL1) SCL

<think>好的,我现在需要帮用户解决在树莓派4B中确定i2c1总线的配置方法。首先,我得回忆一下树莓派4B的I2C总线相关信息。根据之前的引用内容,用户提到过使用i2c-tools工具来检测设备,以及GPIO的配置。树莓派4B的I2C接口可能有多个,比如i2c0和i2c1,但具体哪个是默认启用的呢? 首先,用户的问题是关于如何确定i2c1总线的配置方法。我需要先确认树莓派4B上的I2C总线编号和对应的物理引脚。根据引用[1],安装i2c-tools后,使用sudoi2cdetect1来扫描设备,但这里可能涉及到不同的总线编号。树莓派4B的不同版本可能有不同的总线分配,比如i2c0和i2c1,其中i2c1通常是用户可用的。接下来,我需要检查如何启用I2C接口。通常,树莓派默认可能没有启用I2C,所以需要通过raspi-config工具来开启。步骤可能包括进入InterfaceOptions,选择I2C并启用。这部分是否正确?另外,可能需要修改配置文件/boot/config.txt,添加dtparam=i2c_arm=on,这通常是针对i2c1总线的。然后,安装i2c-tools工具,如果未安装的话,用户需要使用sudo apt-getinstall -y i2c-tools。安装完成后,使用i2cdetect命令来扫描总线。用户需要知道具体的总线编号,比如i2c1对应的可能是编号1,所以命令是sudoi2cdetect-y1。如果设备地址0x3c出现,说明连接正确,如引用[1]中的例子。 另外,物理引脚连接是否正确?树莓派4B的GPIO引脚中,I2C1的SDA和SCL通常对应的是GPIO2(引脚3)和GPIO3(引脚5),对吗?引用[2]提到树莓派I2C接口,可以作为普通端口使用,但启用后这些引脚就专用于I2C功能了。用户可能遇到的问题包括总线编号混淆,比如i2c0和i2c1的区别。树莓派4B的i2c1总线是用户常用的,而i2c0可能被其他系统功能占用。因此,在配置时需要确认使用的是i2c1。总结步骤应该是:1.启用I2C接口;2.确认i2c1总线在系统中的存在;3.使用i2c-tools检测设备。同时,需要注意物理引脚的正确连接,避免硬件问题导致检测不到设备。 还需要考虑用户是否已经正确连接了OLED或其他I2C设备,并确保地址正确。如果用户执行i2cdetect后没有看到设备,可能需要检查接线或设备是否正常工作。此外,是否需要在config.txt中添加其他参数,比如dtparam=i2c_vc=on来启用另一个总线?不过通常i2c_arm已经足够。最后,生成相关问题,比如如何修改总线速度、多设备连接时的注意事项等,帮助用户进一步学习。</think>### 树莓派4B确定i2c1总线的配置方法 #### 步骤说明 1. **启用I2C接口** 通过`raspi-config`工具开启I2C功能: ```bash sudo raspi-config ``` 选择 `Interface Options` → `I2C` → `Yes` → 重启系统[^1]。 2. **修改硬件配置** 在文件`/boot/config.txt`中添加以下内容以明确启用i2c1总线: ```bash dtparam=i2c_arm=on # 启用ARM端的i2c1总线(默认GPIO2/3) ``` 保存后重启树莓派[^1][^2]。 3. **安装i2c-tools工具** 若未安装,执行以下命令: ```bash sudo apt-get install -y i2c-tools ``` 4. **检测i2c1总线设备** 执行扫描命令查看i2c1总线上的设备地址: ```bash sudo i2cdetect -y 1 ``` 若成功连接设备(如OLED),会显示类似`0x3c`的地址[^1]。 5. **验证物理引脚连接** - **i2c1总线引脚**: - SDA(数据线):GPIO2(物理引脚3) - SCL(时钟线):GPIO3(物理引脚5) 确保设备正确连接到这两个引脚[^2]。 --- #### 常见问题排查 - **总线编号混淆**: 树莓派4B的`i2c1`对应命令中的总线编号`1`,而`i2c0`通常保留给系统内部使用。 - **未检测到设备**: 检查接线是否松动、设备是否支持I2C协议,或尝试降低总线速率(在`config.txt`中添加`i2c_arm_baudrate=10000`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值