//读1个字节
unsigned char I2C_Receive_Byte()
{
unsigned char BitCnt=8,IIC_RX_Data=0;
unsigned char temp=0;
I2C_SDA_HIGH; //读入数据 设置SDA 口为输入
P11_Quasi_Mode;
do
{
I2C_SCL_lOW;
delay_10us();
IIC_RX_Data=_crol_(IIC_RX_Data,1); //数据左移一位
BitCnt--;
I2C_SCL_HIGH;
delay_10us();
if(I2C_SDA==1)
IIC_RX_Data = IIC_RX_Data|0x01; //低位置1
else
IIC_RX_Data = IIC_RX_Data&0x0fe; //低位清0
}
while(BitCnt);
I2C_SCL_lOW;
P11_PushPull_Mode;
return IIC_RX_Data;
}
以上P11_Quasi_Mode 改成P11_Input_Mode ,通信就不成功? |