微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32开发板- I2C--24Cxx

STM32开发板- I2C--24Cxx

时间:11-27 来源:互联网 点击:

while(!(I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED)));//等待主机发送过程完成

I2C_GenerateSTART(I2Cx, ENABLE); //I2C开始发送

while(!(I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT)));//设置主机模式

I2C_Send7bitAddress(I2Cx,EE24cBlockSelect,I2C_Direction_Receiver);//设置从机地址,并设置主机为接收模式

while(!(I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))); //确认该过程完成

while(NumToRead)
{
if(NumToRead==1)
{
I2C_AcknowledgeConfig(I2Cx, DISABLE);//关闭I2C的应答功能

I2C_GenerateSTOP(I2Cx, ENABLE); //发送结束信息
}

if((I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_RECEIVED)))//如果接收到信息了
{
*pBuffer = I2C_ReceiveData(I2Cx);//把接收到的数据 填进缓冲区当中

pBuffer++;

NumToRead--;
}
}

I2C_AcknowledgeConfig(I2Cx, ENABLE);//开启主机I2C的应答功能

}

在写i2C和读i2C之间要插入下面函数等待,否则会有问题

I2C_EE_WaitEepromStandbyState();

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top