STM32F103C8T6的学习(7)——I2C

:  本教程基于up主江科大自化协——“STM32入门教程”记录的个人学习笔记

跳转链接:STM32入门教程-2022持续更新中_哔哩哔哩_bilibili

1.I2C通信

I2C总线(Inter IC BUS)是由Philips公司开发的一种通用数据总线

两根通信线:SCL(Serial Clock),SDA(Serial Data)

同步、半双工,带数据应答机制(异步时序的好处省一根时钟线,缺点是对硬件电路非常依赖)

支持总线挂载多设备(一主多从,多主多从)

一主多从:单片机作为主机,主导I2c总线运行,挂载在I2c总线的所有外部模块都是从机,从机只有在主机点名之后才能控制I2c总线

多主多从:在总线上任何一个模块都可以主动跳出来都当从机,此时I2c协议会进行仲裁

2.硬件电路

 所有I2c设备的SCL连接一起,SDA连接一起

设备的SCL和SDA均要配置成开漏输出模式

SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右

3.I2C时序基本单元

起始条件:SCL高电平时期,SDA从高电平切换低电平

终止条件:SCL高电平时期,SDA从低电平切换高电平

发送一个字节:SCL低电平期间,主机将数据位依次到SDA线上(高位先行),然后释放SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节

接收一个字节:SCL低电平期间,从机将数据位依次到SDA线上(高位先行),然后释放SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA)

注:实线代表主机控制的电平,虚线代表从机控制的电平

发送应答:主机在接收完一个字节之后,在下一个时钟发送一个数据,数据0表示应答,数据1表示非应答

接收应答:主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA) 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值