stm32_mpu6050换算异常
stm32读mpu数据,2天没搞定,大家看看什么原因?BUF=IIC_ReadData(MPU6050_Addr,ACCX_L);
BUF=IIC_ReadData(MPU6050_Addr,ACCX_H);
A_X= (BUF<<8)|BUF;
//A_X/=8192; //读取计算X轴数据
不加A_X/=8192;这句输出数据是与姿态非常匹配的,加上任何换算后就不对了。
不加A_X/=8192;时x轴前后倾的波形
加A_X/后的波形,M型,没了负值。
大家帮忙看看,实在不解
8192是AFS_SEL=1 时的Sensitivity Scale Factor。其实除以任意数值它都是这个样子
上面的波形是除以A_X=A_X/16.00; 时的。
将赋值强制转换也无济于事:A_X=(float)((BUF<<8)|BUF); 本帖最后由 lucsong 于 2012-6-2 21:33 编辑
stm32,没有用过。不过从理论上来说。除以任何非0正整数也不能使得结果全为+,会不会是A_X和8192不是同一进制的实参。也许一个是8进制一个是16进制或10进制。这也也许会影响输出结果。我也是菜鸟。吓猜的。我实用arduino调试mpu6050的没遇到这种问题。祝你早日解决。:D 定义两个int型,把BUF和BUF的数据转化后,再运算试试。 问题已经解决,stm32的编译器处理int时是32位的,使用s16就ok了,谢谢大家的回复 前辈你好,我最近也在调试mpu6050这个模块,但用STM32就是不成功,能看看你写的程序吗?非常感谢。我的QQ号574101900,邮箱[email protected]。非常感谢。
前辈你好,你的工程可以发一份给我学习一下吗?最近刚上手stm32,再弄mpu6050,想学习一下,我的QQ邮箱[email protected]。感谢前辈 前辈你好,最近在学stm32,想通过mpu6050做平衡小车,你的工程可以发一份给我学习一下吗?QQ邮箱[email protected]。万分感谢!!!:loveliness: 花开彼岸天 发表于 2013-8-6 21:47 static/image/common/back.gif
前辈你好,最近在学stm32,想通过mpu6050做平衡小车,你的工程可以发一份给我学习一下吗?QQ邮箱。万分感谢 ...
您好,也能发送一份给我学习一下吗?我的 QQ:387620321, 谢谢. 您好,哪位大侠,也能发送一份给我学习一下吗?我的 QQ:387620321, 谢谢. yangyh75 发表于 2012-6-7 14:55 static/image/common/back.gif
问题已经解决,stm32的编译器处理int时是32位的,使用s16就ok了,谢谢大家的回复
问个弱智的问题:为什么要除以:8192 请答复一下,谢谢啊。 好厉害的样子!!!!!!!!!!
页:
[1]