这是主机端
void TRANSFER_Master(void)
{
char res1;
char res2;
char res3;
char res4;
//while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)); //有这句卡这句
//I2C_AcknowledgeConfig(I2C1, ENABLE);
I2C_GenerateSTART(I2C1,ENABLE);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(I2C1,ADDR_SLAVE1,I2C_Direction_Receiver);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED));
res1 = I2C_ReceiveData (I2C1);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED));
res2 = I2C_ReceiveData (I2C1);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED));
res3 = I2C_ReceiveData (I2C1);
I2C_AcknowledgeConfig(I2C1, DISABLE);
I2C_GenerateSTOP(I2C1,ENABLE);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED));
res4 = I2C_ReceiveData (I2C1);
I2C_AcknowledgeConfig(I2C1, ENABLE);
}
|