智能车制作

标题: 求助:用L3G4200D的进 [打印本页]

作者: 少年梦    时间: 2014-1-16 11:57
标题: 求助:用L3G4200D的进
用k60调试陀螺仪,数值一直无变化,求助啊
附上程序:
#define WHO_AM_I  0x0F
#define CTRL_REG1 0x20
#define CTRL_REG2 0x21
#define CTRL_REG3 0x22
#define CTRL_REG4 0x23
#define CTRL_REG5 0x24
#define OUT_X_L 0x28
#define OUT_X_H 0x29
#define OUT_Y_L 0x2A
#define OUT_Y_H 0x2B
#define OUT_Z_L 0x2C
#define OUT_Z_H 0x2D

#define SlaveAddress1   0xD2
void L3G400D_Init()
{ I2C_init(I2C0);
  I2C_WriteAddr(I2C0, SlaveAddress1, CTRL_REG1, 0x0f); //
  I2C_WriteAddr(I2C0, SlaveAddress1, CTRL_REG2, 0x00); //
  I2C_WriteAddr(I2C0, SlaveAddress1, CTRL_REG3, 0x08); //
  I2C_WriteAddr(I2C0, SlaveAddress1, CTRL_REG4, 0x30); //
  I2C_WriteAddr(I2C0, SlaveAddress1, CTRL_REG5, 0x00); //
}
void main()
{   uart_init (UART1,115200);

    L3G400D_Init();
    while(1)
    {
     buf[0]  =   I2C_ReadAddr(I2C0, SlaveAddress1, OUT_X_L);//buf[]是u8型的
     buf[1]  =   I2C_ReadAddr(I2C0, SlaveAddress1, OUT_X_H);
   
     temp=buf[1]<<8+buf[0];//temp是int型的
    printf("%d\n",temp);
        
    }
}


作者: Sailing7    时间: 2014-1-16 13:58
网友说是开漏。。有没有这个呢。。你测试一下,可以给我说一下哈。。
作者: wojiaohaomi    时间: 2014-1-16 22:19
#define SlaveAddress1   0xD2
作者: wojiaohaomi    时间: 2014-1-16 22:21
这个有问题  野火库中 实际的SlaveID = ( SlaveID << 1 ) | Mode ;            //确定写地址和读地址
作者: 少年梦    时间: 2014-1-16 23:32
wojiaohaomi 发表于 2014-1-16 22:21
这个有问题  野火库中 实际的SlaveID = ( SlaveID

恩我发现这个问题了,我把slaveaddress改为了0x69,还是出不来,就是显示65535,话说你有这个程序不,发给我看看
作者: 15123as    时间: 2014-3-2 20:06
wojiaohaomi 发表于 2014-1-16 22:21
这个有问题  野火库中 实际的SlaveID = ( SlaveID

可以给我发一份陀螺仪的那个程序吗?
作者: wojiaohaomi    时间: 2014-3-2 20:57
15123as 发表于 2014-3-2 20:06
可以给我发一份陀螺仪的那个程序吗?

现在没有用这款陀螺仪了,改用其他方案了

作者: 15123as    时间: 2014-3-9 14:33
少年梦 发表于 2014-1-16 23:32
恩我发现这个问题了,我把slaveaddress改为了0x69,还是出不来,就是显示65535,话说你有这个程序不,发给 ...

你最后怎么解决的?我一直是32640
作者: hu9977    时间: 2015-1-4 18:51
把temp的int改成short

作者: 孤单    时间: 2015-1-6 17:26
楼主你的L3G4200D最后怎么解决的,我穿回来的一直是定值,不会变,有空解惑一下吗




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2