(学习笔记3)STM32F429库函数之I2C读取EEPROM

这篇博客详细介绍了如何使用STM32F429的I2C库函数进行与AT24C02 EEPROM的通信,包括起始信号、发送设备地址、写入内存地址和数据、读取数据以及停止信号的过程。博主强调了在通信过程中需要注意的事件响应和标志位的清除,以及对EEPROM内部时序的考虑。
摘要由CSDN通过智能技术生成

首先,I2C总线由两条线——串行数据(SDA)和串行时钟(SCL),这是同步通信,也是半双工通信,不能同时读写。每个器件都有一个唯一的地址识别,当总线空闲时I2C两条线都是高电平,只有当连接到总线的器件的输出级是漏级开路或者集电极开路,唯一的地址能够被正确的器件应答。因为应答信号为0,即低电平,能够拉低总线,而同时其它器件(除主机外)引脚仍表现出高阻态,即可以开始进行通信。

I2C读写EEPROM的通讯过程——

起始信号:在SCL为高电平,SDA由高变低,总线被认为处于忙的状态。调用I2C_GenerateSTART(...)产生起始信号,若起始信号成功发送则产生事件5:SB=1(I2C_SR1的0位置1,表示起始位已发送)

  发送7位地址:这7位地址为EEPROM的设备地址,调用I2C_Send7bitAddress(...)发送,这里用的是8位读/写地址,LSB(最低位)为0表示写入,为1时表示读出。输入形参的时候要注意。每发送一个字节,接收器作出应答。若地址发送结束且接收到应答信号则产生事件6:ADDR=1(I2C_SR1的1位置1 ),这里的事件6位发送事件。

 发送内存地

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值