OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6681|回复: 1

i2c的问题,求帮助。谢谢。

[复制链接]

21

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2012-8-28
在线时间
2 小时
发表于 2012-11-26 20:30:19 | 显示全部楼层 |阅读模式

//============================================
Bool i2c_SendByte( BYTE value )
{
    BYTE i;
    Bool result;

    for( i = 0; i < 8; i++ )  // Send data via i2c pin
    {
        if( value & BIT7 )
        {
            SET_I2C_SDA();
            SET_I2C_SDA_IN(); //external pull high
        }
        else
        {
            CLR_I2C_SDA();
            SET_I2C_SDA_OUT();
        }
        DELAY4US();
        SET_I2C_SCL();
        DELAY4US();  //ygp  //simon 070118 change for not use CSI 24C04
        value <<= 1;
        CLR_I2C_SCL();
        DELAY4US();  //20100317
    }
    //SET_I2C_SDA();
    //DELAY4US();
    SET_I2C_SDA_IN(); // I2C BUS Add By Jonson 20100916
    SET_I2C_SCL();

    DELAY4US();  //ygp//simon 070118 change for not use CSI 24C04
    result = IS_I2C_SDA_LO(); // see if ACK
    //SET_I2C_BUS_OUT();// I2C BUS Add By Jonson 20100916

    CLR_I2C_SCL();//<===here
    SET_I2C_SCL_OUT();
    DELAY4US();

    CLR_I2C_SDA();//<===here
    SET_I2C_SDA_OUT();
    DELAY4US();     //20100317
    return result;
}
想问下,最后的  CLR_I2C_SCL(); 和  CLR_I2C_SDA(); 怎么理解,mark掉又会出问题,为什么我们同样的项目使用不同的Scaler ic时
别的ic可以不加这两条语句。如下

BYTE CI2cSendByte(BYTE ucValue)
{
    BYTE cnt;

    for(cnt=0; cnt<8; cnt++)
    {
        if((bit)(ucValue & 0x80))
        {
            SETI2CSDA();
        }
        else
        {
            CLRI2CSDA();
        }

        SETI2CSCL();
        Delay5us();
        CLRI2CSCL();
        Delay5us();

        ucValue = ucValue << 1;
    }

    if(CI2cGetAck())
    {
        CI2cStop();
        return _I2C_BUSY;
    }
    else
    {
        return _I2C_OK;
    }
}







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-26 22:13:58 | 显示全部楼层
你看看CSI 24C04这个IC的手册吧,看你的代码注释,应该是针对CSI 24C04这个的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 00:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表