搜索

[技术问答] 华大HC32L136软仿I2C

[复制链接]
92|8
 楼主 | 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 | 显示全部楼层
需要先设置引脚方向,然后进行引脚的操作才可以。

使用特权

评论回复
 楼主 | 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口,然后按照时序进行仿真就可以了。

使用特权

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

使用特权

评论回复
 楼主 | 2020-11-19 10:49 | 显示全部楼层
迷惘186 发表于 2020-11-19 09:42
IO口直接设置开漏输出就可以了  不用切换输出和输入

    stc_gpio_cfg_t stcGpioCfg;

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

使用特权

评论回复
 楼主 | 2020-11-19 10:50 | 显示全部楼层
迷惘186 发表于 2020-11-19 09:42
IO口直接设置开漏输出就可以了  不用切换输出和输入

    stc_gpio_cfg_t stcGpioCfg;

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

使用特权

评论回复
| 2020-11-20 09:26 | 显示全部楼层
你的IO口是如何初始化的?没有看见代码。

使用特权

评论回复
| 2020-11-20 16:23 | 显示全部楼层
设置为一般的IO口

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表