STM32学习笔记----IIC通讯

IIC简介

IIC(Inter-Intergrated Circuit)是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由NXP公司为了让主板,嵌入式系统或手机用于低速连接周边装置发展而成。
IIC的物理层:
IIC只有两个总线,一条是双向串行数据线SDA,一条是串行时钟线SCL
SDA(Serial Data)是数据线,D代表Data也就是数据,Send Data 也就是用来传输数据的
SCL(Serial Clock Line)是时钟线,也就是控制数据发送的时序
所有接到IIC总线设备上的串行数据线SDA都连到主机的SDA,各设备的时钟线都连接到主机的SCL,IIC总线上的每一个设备都有自己的唯一的在这里插入图片描述
地址,来保证不同设备之间访问的准确性。
在这里插入图片描述
IIC主要特点:
通常我们为了方便把IIC设备分为主设备和从设备,谁控制时钟线(既控制SCL的低电平的高低变化)谁就是主设备
IIC主设备功能:主要产生时钟,产生起始条件和停止条件
IIC从设备功能:可编程的IIC地址检测,停止位检测
SCL与SDA均需要接上拉电阻(大小由速度和容性负载决定)保证数据传输的稳定性,减少干扰

IIC协议层

IIC总线在传送数据过程中共有三种类型信号,它们分别是起始信号,结束信号和应答信号
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传输数据
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传输数据
应答信号:接收数据的设备在接收到8bit数据后,向发送数据的设备发出特定的低电平脉冲,表示已经结束到数据。发送数据的设备根据是否接收到应答信号作为是否继续发送数据的依据。若未收到应答信号,由判断为受控单元出现故障
IIC总线的时序图
在这里插入图片描述
起始信号
在这里插入图片描述

因为IIC的SCL和SDA都需要接上拉电阻,保证空闲状态的稳定性。所以IIC总线在空闲状态下SCL和SDA都保持高电平,发出起始信号时,
SDA由高电平跳变到低电平,随后SCL变为低电平在这里插入图片描述
在这里插入图片描述](https://img-blog.csdnimg.cn/adf2e1de2b534750a3c072f0f0e3b329.png#pic_center)
结束信号:
SCL高电平期间,SDA由低电平变为高电平
在这里插入图片描述
在这里插入图片描述
数据传送
SCL高电平时,SDA数据保持稳定,SCL低电平时,SDA可以改变,输出到SDA线上的每一个字符必须是8位。当数据传送时,每一个被传送的字节后都必须跟随一位应答,既一帧共有9位。
IIC写8位数据:
在这里插入图片描述
IIC接收8位数据:

在这里插入图片描述
应答信号:
当数据发送方向接收数据方发送完一个字节的数据时,数据发送方总要等待数据接收方给出一个应答信号,以确定从机是否接收到了数据。
应答信号:SCL为高电平时,读取SDA的数据,若SDA为低电平则为产生应答,若SDA为高电平则为无应答
**每发送/接收完一位数据,都必须发送/接收一位应答信号,才能保证通讯继续
在这里插入图片描述
主机向从机写数据:
1.主机首先产生开始信号
2.主机首先发送一个从机地址,这个地址共有7位,紧接着的第八位是数据传输方向(R/W),0表示主机发送数据(写),1代表主机接收数据(读)
3.主机等待应答信号
4.主机接收到应答信号后,向从机发送即将访问的从机地址并等待应答信号
5.主机发送N个字节的数据,并接收N个次应答信号
6.主机发送结束信号
主机向从机读数据:
1.主机首先产生开始信号
2.主机发送从机信号,第八位仍为写标志并等待应答信号
3.主机发送即将读取的从机地址,注意此时第八位为读标志
4.主机接收从机发送的数据,并发送应答信号
5.主机发送结束信号
掌握IIC通讯后,可以将其用于驱动AT24C02存储芯片,OLED屏幕,MPU6050传感器等复杂外设,此后将在阶段项目中进行详细介绍

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值