void I2CSDASetOut(void)
{
RTC_SDA_IO_FUNC_GIO();
RTC_SDA_IO_DIR_OUT();
}
void I2CSDASetIn(void)
{
RTC_SDA_IO_FUNC_GIO();
RTC_SDA_IO_DIR_IN();
HAL_SDA_IO_IMODE_TRISTATE();
}
void I2CSDABitSet(void)
{
SDA=1;
}
void I2CSDABitClear(void)
{
SDA=0;
}
void I2CSCLBitSet(void)
{
SCL=1;
}
void I2CSCLBitClear(void)
{
SCL=0;
}
int I2C_Start(void)
{
//SCL高时 SDA产生低跳变
I2CSCLBitSet();
I2CSDABitSet();
I2C_delay(12);
//if(!GPIO_ReadInputDataBit) return FALSE
I2CSDABitClear();
I2C_delay(13);
I2CSCLBitClear();
//if(GPIO_ReadInputDataBit) return FALSE
//GPIO_ResetBits(I2C2_PORT,I2C2_SDA);
I2C_delay(12);
return 1;
}