入门STM32单片机自学笔记(十二)

I2C通信

I2C是一种通用的数据总线,共有两根通信线(SCL、SDA)。

I2C是一种同步、半双工、带有数据应答以及支持总线挂载多设备(一主多从、多主多从)。

I2C硬件电路

协议的规定:主机CPU有对SCL绝对的控制权力,从机不允许访问SCL;CPU对SDA有控制权力,当接收从机数据或从机应答时,从机会获得SDA的控制权力。

所有I2C设备的SDA连在一起,SCL连在一起。

所有I2C设备的SDA、SCL都设置成开漏输出模式。

所有I2C设备的SDA、SCL都需要一个上拉电阻,阻值为4.7kΩ左右。

I2C时序基本单元

起始条件:SCL高电平期间,SDA由高电平变成低电平。

终止条件:SCL高电平期间,SDA由低电平变成高电平。

发送一个字节

接收一个字节

发送应答与接收应答

读写操作

指定地址写

当前地址读

指定地址读

I2C硬件

STM32单片机内部集成了I2C收发电路,只需要通过控制控制寄存器CR、数据寄存器DR以及状态寄存器SR就可以实现时钟控制、起始终止条件生成、应答位收发、数据收发等功能。

1.减少CPU的负担。

2.支持多主机模型。

3.支持7位/10位地址模型。

4.支持DMA。

5.支持不同的通讯速度,标准(100KHz)、快速(400KHz)。

6.兼容SMBus协议。

STM32F103C8T6单片机的I2C资源:I2C1、I2C2。

I2C硬件收发

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值