#ifndef __IIC_SOFT_H__ #define __IIC_SOFT_H__ #include "common.h" // #include "gpio.h" typedef struct { // PIN_enum scl_pin; // SCL引脚 // PIN_enum sda_pin; // SDA引脚 void (*SCL_SET)(void); void (*SCL_CLR)(void); void (*SDA_SET)(void); void (*SDA_CLR)(void); uint8 (*SDA_READ)(void); uint16 wait_time; // 等待时间,用于I2C总线速度控制 } IIC_Soft_Config; void soft_iic_scan(IIC_Soft_Config *config); void soft_iic_init(IIC_Soft_Config *config); void soft_iic_write_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 dat); void soft_iic_write_reg_bytes(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *dat, uint8 len); uint8 soft_iic_read_reg(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg_addr, uint8 *dat); uint8 soft_iic_read_reg_bytes(IIC_Soft_Config *config, uint8 dev_addr, uint8 reg, uint8 *buf, uint8 len); #endif