IIC

作者: 圆肩男孩 | 来源:发表于2020-08-24 07:48 被阅读0次

IIC:Inter-Intergrated Circuit
物理层:

SCL:
SDA:
高阻态:
标准模式:100kbit/s
快速模式:400kbit/s
高速模式:3.4Mbit/s

协议层:

主机写数据到从机:

写入

主机由从机读取数据

读取

Ⅰ、起始信号:当SCL线为高电平时,SDA线从高电平向低电平切换.
停止信号:当SCL线为高电平时,SDA线从低电平向高电平切换.
Ⅱ、SCL高电平时SDA的数据有效,SCL低电平时SDA的数据无效,此时SDA数据变换
Ⅲ、总线上的每个设备都有自己的独立地址,设备地址可以为7位或10位,紧跟设备地址的一个数据位R/W用来表示数据的传输方向.1写0读.
Ⅳ、在第9个时钟时,数据发送端会释放SDA的控制权,由数据接收端控制SDA,若SDA为高电平,表示非应答,低电平,表示应答.

STM32的IIC结构图

1.通讯引脚

SMBA协议

2.时钟控制逻辑

3.数据控制逻辑

数据寄存器(DR)、地址寄存器(OAR)、PEC寄存器(数据校验的)

4.整体控制逻辑

EV5:SB = 1(Start bit flag)
EV: ADDR = 1(Address sent flag)
EV7:RXNE = 1:RXNE = 1(Data register empty not flag(Receiver)flag)
EV7_1: (读DR寄存器清除该事件,设置ACK=0和STOP请求)
EV8:TXE = 1:(Data register empty flag(Transmitter))
EV8_2:TxE = 1,BTF =1(字节发送结束flag)

初始化IIC相关的GPIO
配置IIC外设的工作模式
编写IIC写入EEPROM的Byte write函数
编写IIC读取EEPROM的RANDOM Read函数
使用read函数和write函数进行读写校验
编写page write 和 seq read函数

相关文章

网友评论

      本文标题:IIC

      本文链接:https://www.haomeiwen.com/subject/zbcpjktx.html