使用MPU6050加速度计测量角度时数据发生边缘跳变的问题

关于使用MPU6050加速度计测量角度时数据发生边缘跳变的问题

最近在使用MPU6050+STM32F103做角度测量,通过Timer3每5ms进行一次采样,串口打印数据并画图后发现加速度计计算角度时会出现边缘跳变,如图所示:

img

img

测试时角度移动范围在-3-0度,但边缘跳变的数据结果绝对值最大会到150多度。
代码是从正点原子的MPU6050例程移植的
陀螺仪摆放方式如下图所示:

img

inv_mpu.c 中,陀螺仪方向设置矩阵为:

static signed char gyro_orientation[9] = {0, -1, 0,
                                          1, 0, 0,
                                          0, 0, 1};

通过加速度计计算角度的方式为:

angle_acc =atan2(aacy,aacz) * 57.3;

之前以为是信号线接触不良导致的问题,但是更换杜邦线后数据仍会跳变
有大佬知道为什么会跳变吗?

先看看从寄存器读出的原始加速度数据是不是也这样跳变