#ifndef _I2C_H_ #define _I2C_H_ #include "define_all.h" #define LCD_RTC_I2C_SCL_GPIO_PORT GPIOA #define LCD_RTC_I2C_SCL_PIN GPIO_Pin_14 #define LCD_RTC_I2C_SDA_GPIO_PORT GPIOA #define LCD_RTC_I2C_SDA_PIN GPIO_Pin_15 //I2C #define I2C_SCL_H GPIO_SetBits(LCD_RTC_I2C_SCL_GPIO_PORT,LCD_RTC_I2C_SCL_PIN) #define I2C_SCL_L GPIO_ResetBits(LCD_RTC_I2C_SCL_GPIO_PORT,LCD_RTC_I2C_SCL_PIN) #define I2C_SDA_H GPIO_SetBits(LCD_RTC_I2C_SDA_GPIO_PORT,LCD_RTC_I2C_SDA_PIN) #define I2C_SDA_L GPIO_ResetBits(LCD_RTC_I2C_SDA_GPIO_PORT,LCD_RTC_I2C_SDA_PIN) #define I2C_SCL_READ GPIO_ReadInputDataBit(LCD_RTC_I2C_SDA_GPIO_PORT,LCD_RTC_I2C_SCL_PIN) #define I2C_SDA_READ GPIO_ReadInputDataBit(LCD_RTC_I2C_SDA_GPIO_PORT,LCD_RTC_I2C_SDA_PIN) #if SOFT_OR_HARD void I2c_Start(void); void I2c_Stop(void); void I2c_Send(uint8_t dat); uint8_t I2c_Read(void); char I2c_Wait_Ack(void); void I2c_Ack(void); void I2c_No_Ack(void); void Sda_Out(void);//SDA ÉèÖÃΪÊä³ö void Sda_In(void);//SDA ÉèÖÃΪÊäÈë void I2c_Scl_Gpio_Init(void); #else #define I2CREAD 1 //I2C¶Á²Ù×÷ #define I2CWRITE 0 //I2Cд²Ù×÷ #define STARTBIT 0 #define RESTARTBIT 1 #define STOPBIT 2 void I2C_Init(I2C_Type* I2Cx); uint08 I2C_Send_Bit( I2C_Type* I2Cx,uint08 BIT_def ); uint08 I2C_Send_Byte(I2C_Type* I2Cx,uint08 x_byte ); uint08 I2C_Receive_Byte( I2C_Type* I2Cx,uint08 *x_byte ); #endif #endif