注册 登录
查看: 728|回复: 2

[K60] i2c连续读取程序mma8451

[复制链接]
发表于 2014-3-13 23:17:08 | 显示全部楼层 |阅读模式
读取数据不正确,求指明错

void geta()
{
u8 c;

I2C0_C1|=I2C_C1_TX_MASK;
I2C0_C1|=I2C_C1_MST_MASK;

I2C0_D=0x38;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
I2C0_D=0x01;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;

I2C0_C1|=I2C_C1_RSTA_MASK;

I2C0_D=0x39;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;

I2C0_C1 &= ~I2C_C1_TXAK_MASK;
I2C0_C1 &= ~I2C_C1_TX_MASK;

c=I2C0_D;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
mmax=I2C0_D;
mmax=mmax<<8;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
c=I2C0_D;
mmax|=c;

while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
mmay=I2C0_D;
mmay<<=8;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
mmay|=I2C0_D;

while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
mmaz=I2C0_D;
mmaz<<=8;
while((I2C0_S&&I2C_S_IICIF_MASK)==0);
I2C0_S|= I2C_S_IICIF_MASK;
mmaz|=I2C0_D;

I2C0_C1&=~I2C_C1_MST_MASK;
I2C0_C1&=~I2C_C1_TX_MASK;
}


回复

使用道具 举报

发表于 2014-3-13 23:23:27 | 显示全部楼层
这个不好说,直接移植别人的代码看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-14 08:54:12 | 显示全部楼层
公西听然 发表于 2014-3-13 23:23
这个不好说,直接移植别人的代码看看

貌似没有连续读取N个字节的函数
回复 支持 反对

使用道具 举报

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

本版积分规则

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