forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-12 f03cf3ae7a36954e64fc014e6bb7afd20c5a5247
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#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_3
 
 
//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