打印
[技术问答]

华大HC32L136软仿I2C

[复制链接]
1115|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zy16816888|  楼主 | 2020-11-18 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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口,然后按照时序进行仿真就可以了。

使用特权

评论回复
5
迷惘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))

使用特权

评论回复
6
zy16816888|  楼主 | 2020-11-19 10:49 | 只看该作者
迷惘186 发表于 2020-11-19 09:42
IO口直接设置开漏输出就可以了  不用切换输出和输入

    stc_gpio_cfg_t stcGpioCfg;

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

使用特权

评论回复
7
zy16816888|  楼主 | 2020-11-19 10:50 | 只看该作者
迷惘186 发表于 2020-11-19 09:42
IO口直接设置开漏输出就可以了  不用切换输出和输入

    stc_gpio_cfg_t stcGpioCfg;

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

使用特权

评论回复
8
勇者无惧你和我| | 2020-11-20 09:26 | 只看该作者
你的IO口是如何初始化的?没有看见代码。

使用特权

评论回复
9
duo点| | 2020-11-20 16:23 | 只看该作者
设置为一般的IO口

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

65

帖子

0

粉丝