写入一个字节:
第一步:使用库函数I2C_GenerateSTART()产生I2C起始信号,调用库函数I2C_CheckEvent()检测事件,若检测到下一事件,则进入通讯下一阶段
第二步:调用库函数I2C_Send7bitAddress()发送EEPROM的设备地址,并把数据传输方向设置为I2C_Direction_Transmitter(即发送方向),发送地址后以同样的方式检测相应的事件。
第三步:调用库函数I2C_SendData向EEPROM发送要写入的地址,发送完后等待EV8事件的产生。
第四步:继续调用库函数I2C_SendData向EEPROM发送要写入的数据,然后等待EV8事件的产生。
第五步:通讯结束,调用I2C_GenerateSTOP发送停止信号。
读取一字节的数据:
第一步:通过库函数I2C_GETFlagStatus()查询库函数是否处于忙碌状态 ,若不忙碌,则进入下一状态。
第二步:使用库函数I2C_GenerateSTART()产生起始信号,调用库函数I2C_CheckEvent()检测Event1,若检测成功则进入下一阶段。
第三步:发送EEPROM的设备地址,方向为I2C_Direction_Transmitter(即写方向),检测事件6
第四步:利用库函数I2C_Cmd重新使能I2C外设
第五步:利用库函数I2C_Senddata()发送要读取的EEPROM的内部地址,检测Event8事件的产生
第六步:产生第二次I2C起始信号,并检测相关事件
第七步:发送I2C设备地址
第八步:读取数据
原文:https://www.cnblogs.com/lingxiyue/p/13049794.html