#ifndef __I2C_ANALOG_H #define __I2C_ANALOG_H #include "stm32f1xx_hal.h" #define DLY_US 50 typedef struct { GPIO_TypeDef* SDA_GPIOx; //GPIOx uint16_t SDA_GPIO_Pin; //GPIO_PIN_x GPIO_TypeDef* SCL_GPIOx; //GPIOx uint16_t SCL_GPIO_Pin; //GPIO_PIN_x }I2C_Handle_Struct_t; void I2C_GPIO_Config(I2C_Handle_Struct_t* I2C_Handle); void Delay(uint32_t Tcount); void I2C_Start(I2C_Handle_Struct_t* I2C_Handle); void I2C_Stop(I2C_Handle_Struct_t* I2C_Handle); void I2C_Write_Byte(I2C_Handle_Struct_t* I2C_Handle, const uint8_t s); void I2C_Read_Byte(I2C_Handle_Struct_t* I2C_Handle, uint8_t *s); uint8_t I2C_Check_Ack(I2C_Handle_Struct_t* I2C_Handle); void I2C_Send_Ack(I2C_Handle_Struct_t* I2C_Handle); void I2C_Send_Nack(I2C_Handle_Struct_t* I2C_Handle); #endif /*__I2C_ANALOG_H */