ADXL345输出数据错误,X轴总是多出 -1g左右
先上代码u8 adxl_init(void)
{
adxl_port_config(); //端口初始化
//最小初始化序列
adxl_writebyte(0x31,0x0B);
adxl_writebyte(0x2D,0x08);
adxl_writebyte(0x2E,0x80);
return ADXL_READY;
}
voidadxl_get3axis(u16 *buf)
{
u8 i = 0;
if(!ADXL_GET_INT())
return;
i = adxl_readbyte(0x30);
ADXL_CS_ON(); //使能芯片
i = Spi1_SendReceiveByte(0xF2); // 起始地址 读指令 MB:多字节
//0xF2 = 0x32 | 0x80 | 0x40
for(i=0;i<6;i++)
buf = Spi1_SendReceiveByte(0xFF);
ADXL_CS_OFF(); //除能芯片
}
s16 adxl_getangle(u16 *buf, float *angle)
{
s16 angleXX = (buf<<8) | buf;
s16 angleYY = (buf<<8) | buf;
s16 angleZZ = (buf<<8) | buf;
angle = angleXX*3.9;
angle = angleYY*3.9;
angle = angleZZ*3.9;
}
处理到这个地方的时候发现,X轴总是多出-1g,任何姿态都是这个样子。
比如,按照手册上所述,水平向上的时候:
Xout = 0g Yout = 0g Zout = 1g
但是我的实际输出是:
Xout =-1g Yout = 0g Zout = 1g
X轴垂直指向上的时候,Xout达到-2g
不知道是哪里设置错了呢? 需要做零点校准的 回复【1楼】haolxy飞鸟
需要做零点校准的
-----------------------------------------------------------------------
多谢
不校准的话,会漂移1g之多吗? OMG
上电测试了一下,同样的程序
过了一夜,好了。。。
目前还没找到原因。。。 lz,加速度传感器在撞击,焊接,电源接反,等意外过后。很可能出现一个固定的异常数据。需要静置一夜的。以前曾经被它摆过一道 回复【4楼】cqy1028秋阳
lz,加速度传感器在撞击,焊接,电源接反,等意外过后。很可能出现一个固定的异常数据。需要静置一夜的。以前曾经被它摆过一道
-----------------------------------------------------------------------
受教了 数值跳动在0.005g左右,不知道算大算小 回复【6楼】Alvin007
-----------------------------------------------------------------------
LZ 请教个问题,ADXL345数据格式,若是±8g,12位分辨率,右对齐情况下,其符号位占几位?如果分为高低各8位,那么是高五位都是符号位,还是高字节的第四位位符号位?谢谢 弄出来了,高5位都是符号位,或者全零或者全一 原来是这样啊 害我找了一整天的原因 先搁一夜看看不就早上测试时候弹了它几下么来脾气了还
我的ADXL345数据是正常,我用FIFO水印中断读取数值,一开始进不了中断,后来进去了,然后再取均值,数据跳的厉害,有没有人知道怎么写滤波的程序啊 cqy1028 发表于 2011-12-2 11:11 static/image/common/back.gif
lz,加速度传感器在撞击,焊接,电源接反,等意外过后。很可能出现一个固定的异常数据。需要静置一夜的。以 ...
请问静置一夜具体是多长时间啊?我之前将传感器电源正负接反了,现在传感器各轴显示为0,不过我现在时间很紧,不知道是不是需要静置。。。还有,我用另外的模块各轴也是显示0 ,之前还是可以测得数据的,现在两个模块都不行了,不知道是不是这个原因啊。。。请教了~
页:
[1]