TI中文支持网
TI专业的中文技术问题搜集分享网站

关于IO 模拟 i2c

我现在 有两个 问题:

1:我在使用硬件i2c 访问 我的外设的时候,使用的代码如下:

void  myIIC_init(u8 mpu_add)
{
    I2C_init();
    I2C_Params_init(&i2cParams);
    i2cParams.bitRate = I2C_400kHz;
    i2c = I2C_open(Board_I2C_TMP, &i2cParams);
    i2cTransaction.slaveAddress = mpu_add;
    if (i2c == NULL)
    { while (1);}
}

bool iic_read_Register(uint8_t add,u8 *buff,uint8_t len)
{
    i2cTransaction.writeBuf = &add;
    i2cTransaction.writeCount = 1;
    i2cTransaction.readBuf = buff;
    i2cTransaction.readCount = len;
    return I2C_transfer(i2c,&i2cTransaction);
}

我在调用     iic_read_Register(0x00,&test,1); 的时候,test返回值是0x00;
但是 我用示波器 查看了波形:

显然 波形 是我所期望的数据 (0x11);

那么为什么我会读不到 这个 0x11呢?

第二个问题:

在尝试使用硬件i2c失败之后,我试了试 io模拟i2c;

读数始终是0xFF,我查到最后 用示波器 发现 在我写地址的时候 有一位 被莫名其妙的 拉高了电平;

于是我用官方的板子 试了一下附件 里面的程序,示波器 显示结果:

请问一下 这一位被拉高电平是怎么回事啊?

io_iic.c

灰小子:

你用的什么mcu?和什么器件进行的通讯?

Viki Shi:

请提供一下芯片型号,一般有相应的I2C driver的

user5993042:

回复 Viki Shi:

我是用的TI1310 和 国产芯片VC51,我自己 IO口模拟的 时候因为 用的是官方的板子 都没有接上器件,就是 使用的 IO操作,但是 示波器 效果有错~

赞(0)
未经允许不得转载:TI中文支持网 » 关于IO 模拟 i2c
分享到: 更多 (0)