这里写目录标题
-
- 1.IIC简介
- 2. I2C 基本读写过程
-
-
- 2.1.主机写数据到从机
- 2.2.主机由从机中读数据
- 2.3.读和写数据
- 2.4.地址及数据方向
- 2.5.响应信
-
- 3.软件模拟I2C
- 4.软件模拟IIC实现过程
-
-
- 4.1.IIC开启信
- 4.2.IIC结束信
- 4.3.主机向I2C总线设备发送8bit数据
- 4.4.主机读取8bit数据
- 4.5.CPU产生一个时钟,并读取器件的ACK应答信
- 4.6.应答信
- 4.7.非应答信
- 4.8.发送设备地址(SLAVE_ADDRESS)
- 4.9.信 逻辑配置完成**
-
- 5.EEPROM芯片
- 6.通过I2C协议向EEPROM写入数据。
- 编程要点
-
-
- 6.1.判断EEPROM是否正常
- 6.2.读取指定地址处开始的数据
-
- 6.3.向串行EEPROM指定地址写入若干数据
-
-
- 6.4.EEPROM数据擦除
-
- 6.工程文件
1.IIC简介
IIC和EEPROM详解
IIC总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。
I2C 总线在传送数据过程中共有三种类型信 , 它们分别是:开始信 、结束信 和应答信 。
开始信 :SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
结束信 :SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
应答信 :接收数据的 IIC 在接收到 8bit 数据后,向发送数据的IIC 发出特定的低电平脉冲,表示已收到数据。
时序图
2. I2C 基本读写过程
注:
1、S 表示由主机的 I2C 接口产生的传输起始信 (S),这时连接到 I2C 总线上的所有从机都会 接收到这个信 。
起始信 产生后,所有从机就开始等待主机紧接下来广播的从机地址信 (SLAVE_ADDRESS)。 在 I2C总线上,每个设备的地址都是唯一的,当主机广播的地址与某个设备地址相同时,这个设 备就被选中了,没被选中的设备将会忽略之后的数据信 。
2、在地址位之后,是传输方向的选择位,该位为 0 时,表示后面的数据传输方向是由主机传输至从机,即主机向从机写数据。该位为 1 时,则相反,即主机由从机读数据。
3.从机接收到匹配的地址后,主机或从机会返回一个应答 或非应答 信 ,只有接收到应答信 后,主机才能继续发送或接收数据。
4、主机开始正式向从机传输数据,数据包的大小为 8 位,主机每发送完一个字节数据,都要等待从机的应答信 ,重复这个过程,可以向从机传输 N 个数据,这个 N 没有大小限制。当数据传输结束时,主机向从机发送一个**停止传输信 **,表示不再传输数据。
2.1.主机写数据到从机
2.3.读和写数据
2.5.响应信
I2C 的数据和地址传输都带响应。响应包括“应答 (ACK)”和“非应答 (NACK)”两种信 。作为数据接收端时,当设备 (无论主从机) 接收到 I2C 传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答 (ACK)”信 ,发送方会继续发送下一个数据;若接收端希望结束数据传输,则向对方发送“非应答 (NACK)”信 ,发送方接收到该信 后会产生一个停止信 ,结束信 传输。
4.4.主机读取8bit数据
4.5.CPU产生一个时钟,并读取器件的ACK应答信
4.6.应答信
4.7.非应答信
4.8.发送设备地址(SLAVE_ADDRESS)
4.9.信 逻辑配置完成**
.C文件
#include "software.h"#include "stm32f10x.h"static void I2C_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /* 打开GPIO时钟 */ GPIO_InitStructure.GPIO_Pin = SCL_PIN | SDA_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; /* 开漏输出 */ GPIO_Init(GPIO_x, &GPIO_InitStructure); /* 给一个停止信 , 复位I2C总线上的所有设备到待机模式 */ I2C_Stop();}void I2C_Start(void){ /* 当SCL高电平时,SDA出现一个下跳沿表示I2C总线启动信 */ SDA_H; SCL_H声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!