- //读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 ,通信就不成功?
|