zy16816888 发表于 2020-11-18 11:17

华大HC32L136软仿I2C

本帖最后由 zy16816888 于 2020-11-18 14:45 编辑

有没有人用过华大HC32L136软I2C的,可以发个例程吗?
我在用这块芯片,想设置SDA_IN和SDA_OUT的时候总发生错误
用的引脚:
IIC_SDA PB11
IIC_SCL PB10
其中IO口方向设置为:
//IO方向设置
void SDA_IN()
{
        M0P_GPIO->PBDIR &= ~(1<<11);
}
void SDA_OUT()
{
        M0P_GPIO->PBDIR|=(1<<11);
}

看别人照片 发表于 2020-11-19 08:53

需要先设置引脚方向,然后进行引脚的操作才可以。

zy16816888 发表于 2020-11-19 09:34

看别人照片 发表于 2020-11-19 08:53
需要先设置引脚方向,然后进行引脚的操作才可以。

//IO方向设置
void SDA_IN()
{
      M0P_GPIO->PBDIR &= ~(1<<11);
}
void SDA_OUT()
{
      M0P_GPIO->PBDIR|=(1<<11);
}
我就是这个代码设置引脚方向,但是不对!

可爱的烧饼 发表于 2020-11-19 09:38

将IO口设置为一般的IO口,然后按照时序进行仿真就可以了。

迷惘186 发表于 2020-11-19 09:42

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))

zy16816888 发表于 2020-11-19 10:49

迷惘186 发表于 2020-11-19 09:42
IO口直接设置开漏输出就可以了不用切换输出和输入

    stc_gpio_cfg_t stcGpioCfg;

你这个我没试过呢,谢谢咯!

zy16816888 发表于 2020-11-19 10:50

迷惘186 发表于 2020-11-19 09:42
IO口直接设置开漏输出就可以了不用切换输出和输入

    stc_gpio_cfg_t stcGpioCfg;


你这个我没试过呢,谢谢咯,我试下!

勇者无惧你和我 发表于 2020-11-20 09:26

你的IO口是如何初始化的?没有看见代码。

duo点 发表于 2020-11-20 16:23

设置为一般的IO口
页: [1]
查看完整版本: 华大HC32L136软仿I2C