/** \file gpio_i2c.h */ #if !defined(GPIO_I2C_H__817813DF_FB6D_4121_912A_DD8A262A2476__INCLUDED_) #define GPIO_I2C_H__817813DF_FB6D_4121_912A_DD8A262A2476__INCLUDED_ #include "define.h" #include "board_config.h" #define I2C_ACK 0 #define I2C_NACK 1 #define I2C0_SDA_PORT PD #define I2C0_SCL_PORT PD #define I2C0_SDA_PIN 1 #define I2C0_SCL_PIN 0 #define I2C0_DELAY 30 #define I2C0_SCL_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C0_SCL_PORT,_BIT(I2C0_SCL_PIN)) #define I2C0_SCL_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C0_SCL_PORT,_BIT(I2C0_SCL_PIN)) #define I2C0_SDA_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C0_SDA_PORT,_BIT(I2C0_SDA_PIN)) #define I2C0_SDA_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C0_SDA_PORT,_BIT(I2C0_SDA_PIN)) #define I2C0_SDA_OUTPUT HAL_GPIO_ConfigOutput((Pn_Type*)I2C0_SDA_PORT, I2C0_SDA_PIN, PUSH_PULL_OUTPUT) #define I2C0_SDA_INPUTS HAL_GPIO_ConfigOutput((Pn_Type*)I2C0_SDA_PORT, I2C0_SDA_PIN, INPUT) #define I2C0_ACK_READ TESTBIT(I2C0_SDA_PORT->INDR, I2C0_SDA_PIN) #define I2C0_SDA_READ TESTBIT(I2C0_SDA_PORT->INDR, I2C0_SDA_PIN) #define I2C1_SDA_PORT PF #define I2C1_SCL_PORT PF #define I2C1_SDA_PIN 1 #define I2C1_SCL_PIN 0 #define I2C1_DELAY 30 #define I2C1_SCL_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C1_SCL_PORT,_BIT(I2C1_SCL_PIN)) #define I2C1_SCL_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C1_SCL_PORT,_BIT(I2C1_SCL_PIN)) #define I2C1_SDA_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C1_SDA_PORT,_BIT(I2C1_SDA_PIN)) #define I2C1_SDA_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C1_SDA_PORT,_BIT(I2C1_SDA_PIN)) #define I2C1_SDA_OUTPUT HAL_GPIO_ConfigOutput((Pn_Type*)I2C1_SDA_PORT, I2C1_SDA_PIN, PUSH_PULL_OUTPUT) #define I2C1_SDA_INPUTS HAL_GPIO_ConfigOutput((Pn_Type*)I2C1_SDA_PORT, I2C1_SDA_PIN, INPUT) #define I2C1_ACK_READ TESTBIT(I2C1_SDA_PORT->INDR, I2C1_SDA_PIN) #define I2C1_SDA_READ TESTBIT(I2C1_SDA_PORT->INDR, I2C1_SDA_PIN) #define I2C2_SDA_PORT PC #define I2C2_SCL_PORT PC #define I2C2_SDA_PIN 5 #define I2C2_SCL_PIN 6 #define I2C2_DELAY 30 #define I2C2_SCL_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C2_SCL_PORT,_BIT(I2C2_SCL_PIN)) #define I2C2_SCL_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C2_SCL_PORT,_BIT(I2C2_SCL_PIN)) #define I2C2_SDA_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C2_SDA_PORT,_BIT(I2C2_SDA_PIN)) #define I2C2_SDA_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C2_SDA_PORT,_BIT(I2C2_SDA_PIN)) #define I2C2_SDA_OUTPUT HAL_GPIO_ConfigOutput((Pn_Type*)I2C2_SDA_PORT, I2C2_SDA_PIN, PUSH_PULL_OUTPUT) #define I2C2_SDA_INPUTS HAL_GPIO_ConfigOutput((Pn_Type*)I2C2_SDA_PORT, I2C2_SDA_PIN, INPUT) #define I2C2_ACK_READ TESTBIT(I2C2_SDA_PORT->INDR, I2C2_SDA_PIN) #define I2C2_SDA_READ TESTBIT(I2C2_SDA_PORT->INDR, I2C2_SDA_PIN) void GPIO_I2C0_Initialization(void); void GPIO_I2C0_Start(void); void GPIO_I2C0_Stop(void); uint8_t GPIO_I2C0_Write(uint8_t data); uint8_t GPIO_I2C0_Read(uint8_t rs); uint8_t I2C0_Write(uint8_t Address, uint8_t* pWriteData, uint8_t WriteDataSize); uint8_t I2C0_Read(uint8_t Address, uint8_t *pReadData, uint8_t ReadDataSize); void GPIO_I2C1_Initialization(void); void GPIO_I2C1_Start(void); void GPIO_I2C1_Stop(void); uint8_t GPIO_I2C1_Write(uint8_t data); uint8_t GPIO_I2C1_Read(uint8_t rs); uint8_t I2C1_Write(uint8_t Address, uint8_t* pWriteData, uint8_t WriteDataSize); uint8_t I2C1_Read(uint8_t Address, uint8_t *pReadData, uint8_t ReadDataSize); void GPIO_I2C2_Initialization(void); void GPIO_I2C2_Start(void); void GPIO_I2C2_Stop(void); uint8_t GPIO_I2C2_Write(uint8_t data); uint8_t GPIO_I2C2_Read(uint8_t rs); uint8_t I2C2_Write(uint8_t Address, uint8_t* pWriteData, uint8_t WriteDataSize); uint8_t I2C2_Read(uint8_t Address, uint8_t *pReadData, uint8_t ReadDataSize); #endif