case 0x08: ///< 已发送起始条件,将发送SLA+W
I2C_ClearFunc(I2CX,I2cStart_En);
I2C_WriteByte(I2CX,I2C_SLAVEADDR);
B_ReadCnt = 0;
break;
case 0x18: ///< 已发送SLA+W,并接收到ACK
B_ReadCnt = 1;
I2C_WriteByte(I2CX,u8Addr>>8); ///< 发送从机内存地址
//I2C_WriteByte(I2CX,u8Addr>>8); ///< 发送从机内存地址
break;
case 0x28: ///< 已发送数据,接收到ACK, 此处是已发送从机内存地址u8Addr并接收到ACK
if(B_ReadCnt)
{
B_ReadCnt = 0;
I2C_WriteByte(I2CX,u8Addr);
}
else
{
I2C_SetFunc(I2CX,I2cStart_En); ///< 发送重复起始条件
}
break;
|