2023-01-19 00:11:51 +08:00

55 lines
2.0 KiB
C

#ifndef __I2C_SW_H
#define __I2C_SW_H
/* includes */
#include "main.h"
#include "stdio.h"
/* defines */
#define GPIO_SW_I2C1_SCL SWI2C_SCL_GPIO_Port
#define GPIO_SW_I2C1_SDA SWI2C_SDA_GPIO_Port
#define GPIO_SW_I2C1_SCL_PIN SWI2C_SCL_Pin
#define GPIO_SW_I2C1_SDA_PIN SWI2C_SDA_Pin
/*
#define GPIO_SW_I2Cx_SCL GPIOx
#define GPIO_SW_I2Cx_SDA GPIOx
#define GPIO_SW_I2Cx_SCL_PIN GPIO_PIN_x
#define GPIO_SW_I2Cx_SDA_PIN GPIO_PIN_x
*/
#define SW_I2C1 1
//#define SW_I2Cx x
/* functions */
void TIMER__Wait_us(__IO uint32_t uS);
void SW_I2C_initial(void);
void i2c_port_initial(uint8_t sel);
uint8_t SW_I2C_ReadVal_SDA(uint8_t sel);
void SW_I2C_Write_Data(uint8_t sel, uint8_t data);
uint8_t SW_I2C_Read_Data(uint8_t sel);
uint8_t SW_I2C_WriteControl_8Bit(uint8_t sel, uint8_t IICID, uint8_t regaddr, uint8_t data);
uint8_t SW_I2C_WriteControl_8Bit_OnlyRegAddr(uint8_t sel, uint8_t IICID, uint8_t regaddr);
uint8_t SW_I2C_WriteControl_16Bit(uint8_t sel, uint8_t IICID, uint8_t regaddr, uint16_t data);
uint8_t SW_I2C_ReadControl_8Bit_OnlyRegAddr(uint8_t sel, uint8_t IICID, uint8_t regaddr);
uint8_t SW_I2C_ReadControl_8Bit_OnlyData(uint8_t sel, uint8_t IICID);
uint16_t SW_I2C_ReadControl_16Bit_OnlyData(uint8_t sel, uint8_t IICID);
uint8_t SW_I2C_ReadControl_8Bit(uint8_t sel, uint8_t IICID, uint8_t regaddr);
uint16_t SW_I2C_ReadControl_16Bit(uint8_t sel, uint8_t IICID, uint8_t regaddr);
uint8_t SW_I2C_ReadnControl_8Bit(uint8_t sel, uint8_t IICID, uint8_t regaddr, uint8_t rcnt, uint8_t (*pdata));
uint8_t SW_I2C_Multi_ReadnControl_8Bit(uint8_t sel, uint8_t IICID, uint8_t regaddr, uint8_t rcnt, uint8_t (*pdata));
uint8_t SW_I2C_Check_SlaveAddr(uint8_t sel, uint8_t IICID);
uint8_t SW_I2C_UTIL_WRITE(uint8_t sel, uint8_t IICID, uint8_t regaddr, uint8_t data);
uint8_t SW_I2C_UTIL_Read(uint8_t sel, uint8_t IICID, uint8_t regaddr);
uint8_t SW_I2C_UTIL_Read_Multi(uint8_t sel, uint8_t IICID, uint8_t regaddr, uint8_t rcnt, uint8_t (*pdata));
#endif /* __I2C_SW_H */