#ifndef _I2C_H_
|
#define _I2C_H_
|
|
#include "define_all.h"
|
#include "main.h"
|
|
//Òý½Å¶¨Òå
|
#define LCD_RTC_I2C_SCL_GPIO_PORT GPIOD
|
#define LCD_RTC_I2C_SCL_PIN GPIO_Pin_2
|
#define LCD_RTC_I2C_SDA_GPIO_PORT GPIOD
|
#define LCD_RTC_I2C_SDA_PIN GPIO_Pin_2
|
|
|
//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
|