IO口直接设置开漏输出就可以了 不用切换输出和输入
stc_gpio_cfg_t stcGpioCfg;
DDL_ZERO_STRUCT(stcGpioCfg); ///< 初始化结构体变量的值为0
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); ///< 开启GPIO时钟门控
stcGpioCfg.enDir = GpioDirOut; ///< 端口方向配置->输出
stcGpioCfg.enOD = GpioOdEnable; ///< 端口开漏输出配置->开漏输出使能
stcGpioCfg.enPu = GpioPuEnable; ///< 端口上拉配置->使能
stcGpioCfg.enPd = GpioPdDisable; ///< 端口下拉配置->禁止
Gpio_Init(AT_PORT, AT_SCL_PIN, &stcGpioCfg); ///< 初始化PB8
Gpio_Init(AT_PORT, AT_SDA_PIN, &stcGpioCfg); ///< 初始化PB9
#define I2C0_SCL_L() HC_GPIORESET(AT_PORT, AT_SCL_PIN)
#define I2C0_SCL_H() HC_GPIOSET(AT_PORT, AT_SCL_PIN)
#define I2C0_SDA_L() HC_GPIORESET(AT_PORT, AT_SDA_PIN)
#define I2C0_SDA_H() HC_GPIOSET(AT_PORT, AT_SDA_PIN)
#define SDA_READ() (Gpio_GetInputIO(AT_PORT, AT_SDA_PIN))
|