#ifndef __IIC_HAL_H #define __IIC_HAL_H #include "stm32f4xx_hal.h" typedef struct { GPIO_TypeDef * IIC_SDA_PORT; GPIO_TypeDef * IIC_SCL_PORT; uint16_t IIC_SDA_PIN; uint16_t IIC_SCL_PIN; //void (*CLK_ENABLE)(void); }iic_bus_t; void IICStart(iic_bus_t *bus); void IICStop(iic_bus_t *bus); unsigned char IICWaitAck(iic_bus_t *bus); void IICSendAck(iic_bus_t *bus); void IICSendNotAck(iic_bus_t *bus); void IICSendByte(iic_bus_t *bus, unsigned char cSendByte); unsigned char IICReceiveByte(iic_bus_t *bus); void IICInit(iic_bus_t *bus); uint8_t IIC_Write_One_Byte(iic_bus_t *bus, uint8_t daddr,uint8_t reg,uint8_t data); uint8_t IIC_Write_Multi_Byte(iic_bus_t *bus, uint8_t daddr,uint8_t reg,uint8_t length,uint8_t buff[]); unsigned char IIC_Read_One_Byte(iic_bus_t *bus, uint8_t daddr,uint8_t reg); uint8_t IIC_Read_Multi_Byte(iic_bus_t *bus, uint8_t daddr, uint8_t reg, uint8_t length, uint8_t buff[]); #endif