mpu6050 蓝牙数据传过来,通过串口在c#界面实现鼠标的移动,可移动不顺怎么办

总觉得是算法有点问题,没办法自由移动,需要倾斜角度才能移动,平放水平移动,鼠标根本不动,HID因为一些原因不适用,所以问问大家该怎么做这一块
ax = (int16_t)(value[4] + (value[5] << 8));
ay = (int16_t)(value[6] + (value[7] << 8));
az = (int16_t)(value[8] + (value[9] << 8));

    gx = (int16_t)(value[10] + (value[11] << 8));
    gy = (int16_t)(value[12] + (value[13] << 8));
    gz = (int16_t)(value[14] + (value[15] << 8));

    dpsX = (((float)ax) / 4095) * 9.78030; // LSB sensitivity: 65.5 LSB/dps @ ±500dps
    dpsY = (((float)ay) / 4095) * 9.78030;
    dpsZ = (((float)az) / 4095) * 9.78030;

    gx = (gx / 32) * 10;
    gy = (gy / 32) * 10;
    int val_x = (int)(((gx)*x_kand + dpsX * (1 - x_kand)) * 3.0f * 0.01);
    int val_y = (int)(((gy - offsety) * y_kand + dpsY * (1 - y_kand)) * 3.0f * 0.01);