nds_shenzhen 发表于 2013-9-2 15:47:40

L3G4200 度数漂移严重

L3G4200 度数漂移严重
做过的朋友提点意见
谢谢

//************³初始化L3G4200D*********************************
void Init_L3G4200D(void)
{
        Single_Write(L3G4200_Addr,CTRL_REG1, 0x0f);
        Single_Write(L3G4200_Addr,CTRL_REG2, 0x00);
        Single_Write(L3G4200_Addr,CTRL_REG3, 0x08);
        Single_Write(L3G4200_Addr,CTRL_REG4, 0x30);        //+-2000dps
        Single_Write(L3G4200_Addr,CTRL_REG5, 0x00);
}       
//******读取L3G4200D数据****************************************
void READ_L3G4200D(void)
{
   BUF=Single_Read(L3G4200_Addr,OUT_X_L);
   BUF=Single_Read(L3G4200_Addr,OUT_X_H);
   T_X=        (BUF<<8)|BUF;
   T_X/=16;

   BUF=Single_Read(L3G4200_Addr,OUT_Y_L);
   BUF=Single_Read(L3G4200_Addr,OUT_Y_H);
   T_Y=        (BUF<<8)|BUF;
   T_Y/=16;
       
   BUF=Single_Read(L3G4200_Addr,OUT_Z_L);
   BUF=Single_Read(L3G4200_Addr,OUT_Z_H);
   T_Z=        (BUF<<8)|BUF;
   T_Z/=16;
}


int main(void)
{
        short temp = 0;
RCC_Configuration();
GPIO_Configuration();
USART1_Configuration();
I2C_GPIO_Config();
Delayms(10);
Init_L3G4200D();                     初始化L3G4200D
Delayms(10);
//USART1_SendData(0x55);
temp = Single_Read(L3G4200_Addr,WHO_AM_I);//读取ID 得出0xD3
USART1_SendData(temp);

while(1)
{
        temp = Single_Read(L3G4200_Addr,STATUS_REG);   //等待数据有效
        if((temp&0x08))       
        {
        READ_L3G4200D();                                             //读取L3G4200D数据
      DATA_printf(TX_DATA,T_X);                                //转换X轴数据到数组
        Send_data('X');                                                       //发送串口显示X轴数据
      DATA_printf(TX_DATA,T_Y);                                //转换Y轴数据到数组
        Send_data('Y');                                                       //发送串口显示Y轴数据
        DATA_printf(TX_DATA,T_Z);                                //转换Z轴数据到数组
        Send_data('Z');                                                       //发送串口显示Z轴数据
        USART1_SendData(0X0D);                                       //换行
        USART1_SendData(0X0A);                                       //回车
        //Delayms(5);       
}
}
}

添加T_X/=16;   T_Y/=16;    T_Z/=16;

X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X: 000Y: 000Z: 000
X:-001Y: 000Z: 000
X: 000Y: 000Z: 000
X: 000Y: 000Z: 000
X: 000Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000
X:-001Y: 000Z: 000


//******读取L3G4200D数据****************************************
void READ_L3G4200D(void)
{
   BUF=Single_Read(L3G4200_Addr,OUT_X_L);
   BUF=Single_Read(L3G4200_Addr,OUT_X_H);
   T_X=        (BUF<<8)|BUF;
   //T_X/=16;

   BUF=Single_Read(L3G4200_Addr,OUT_Y_L);
   BUF=Single_Read(L3G4200_Addr,OUT_Y_H);
   T_Y=        (BUF<<8)|BUF;
   //T_Y/=16;
       
   BUF=Single_Read(L3G4200_Addr,OUT_Z_L);
   BUF=Single_Read(L3G4200_Addr,OUT_Z_H);
   T_Z=        (BUF<<8)|BUF;
   //T_Z/=16;
}

不添加T_X/=16;   T_Y/=16;    T_Z/=16;

X:-022Y:-008Z:-003
X:-023Y:-010Z:-008
X:-022Y:-006Z:-003
X:-022Y:-012Z: 000
X:-019Y:-008Z: 002
X:-021Y:-012Z:-003
X:-013Y:-010Z:-003
X:-026Y:-010Z:-006
X:-018Y:-010Z:-002
X:-024Y:-015Z:-003
X:-015Y:-004Z:-010
X:-019Y:-010Z: 003
X:-022Y:-009Z:-001
X:-024Y:-012Z:-007
X:-021Y:-012Z:-003
X:-020Y:-007Z:-005
X:-018Y:-009Z:-007
X:-022Y:-009Z:-004
X:-018Y:-015Z:-001
X:-024Y:-008Z:-004
X:-024Y:-010Z:-001
X:-018Y:-007Z:-009
X:-017Y:-010Z:-009
X:-023Y:-009Z:-001
X:-022Y:-007Z:-005
X:-018Y:-004Z:-009
X:-024Y:-013Z:-006
X:-024Y:-008Z:-006
X:-024Y:-005Z:-009
X:-020Y:-005Z:-006
X:-014Y:-005Z:-004
X:-018Y:-009Z:-005
X:-021Y:-012Z:-008
X:-020Y:-012Z:-004
X:-017Y:-009Z: 000
X:-020Y:-006Z:-003
X:-018Y:-013Z:-008
X:-018Y:-013Z:-004
X:-019Y:-014Z:-003
X:-023Y:-011Z:-003
X:-018Y:-004Z:-005
X:-015Y:-003Z: 000
X:-020Y:-010Z:-007
X:-020Y:-009Z:-005
X:-020Y:-009Z: 003
X:-023Y:-007Z: 253
X:-018Y:-013Z:-004
X:-024Y:-011Z:-007
X:-017Y:-011Z:-002
X:-022Y:-010Z:-007
X:-020Y:-010Z:-006
X:-023Y:-011Z:-001
X:-022Y:-011Z:-003
X:-015Y:-010Z: 001
X:-022Y:-013Z:-004
X:-024Y:-010Z:-011
X:-018

nds_shenzhen 发表于 2013-9-2 16:25:08

自己定上去

湛泸骏驰 发表于 2013-11-16 21:09:43

你调试的怎么样了,我现在也在弄,但是现在一点思路都没有啊,。
页: [1]
查看完整版本: L3G4200 度数漂移严重