欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

         找回密碼
         立即注冊

        QQ登錄

        只需一步,快速開始

        搜索
        查看: 2333|回復: 4
        收起左側

        各位大佬,問一下有關mpu6050自檢函數的問題

        [復制鏈接]
        ID:696378 發表于 2021-10-25 14:18 | 顯示全部樓層 |閱讀模式
        mpu6050 自檢的結果返回2,沒有辦法完成自檢,可能是什么原因,我有將模塊放平,而且將result=3改成2之后,能通過但是roll的值為177。
        自檢函數內部
                gyro_result = gyro_self_test(gyro, gyro_st);
                
            accel_result = accel_self_test(accel, accel_st);
        //        delay_ms(100);
        //   gyro_result = gyro_self_test(gyro, gyro_st);

            result = 0;
            if (!gyro_result)
                result |= 0x01;
            if (!accel_result)
                result |= 0x02;


        自檢函數外部
                result = mpu_run_self_test(gyro, accel);

                if (result == 0x2)//3 0
                {
                        /* Test passed. We can trust the gyro data here, so let's push it down
                        * to the DMP.
                        */
                        float sens;
                        unsigned short accel_sens;
                        mpu_get_gyro_sens(&sens);
                        gyro[0] = (long)(gyro[0] * sens);
                        gyro[1] = (long)(gyro[1] * sens);
                        gyro[2] = (long)(gyro[2] * sens);
                        dmp_set_gyro_bias(gyro);
                        mpu_get_accel_sens(&accel_sens);

                        accel[0] *= accel_sens;
                        accel[1] *= accel_sens;
                        accel[2] *= accel_sens;
                        dmp_set_accel_bias(accel);
                        return 0;
                }else return 1;

        回復

        使用道具 舉報

        ID:696378 發表于 2021-10-25 14:23 | 顯示全部樓層
          gyro_result = gyro_self_test(gyro, gyro_st); 的結果為04

        static int gyro_self_test(long *bias_regular, long *bias_st)
        {
            int jj, result = 0;
            unsigned char tmp[3];//3
            float st_shift, st_shift_cust, st_shift_var;
            if (i2c_read(st.hw->addr, 0x0D, 3, tmp))
                return 0x07;
               
            if (i2c_read(st.hw->addr, 0x0D, 7, tmp))
                return 0x07;
               
            tmp[0] &= 0x1F;
            tmp[1] &= 0x1F;
            tmp[2] &= 0x1F;
               
        //        tmp[5] &= 0x1F;
        //    tmp[6] &= 0x1F;
        //    tmp[7] &= 0x1F;
               

            for (jj = 0; jj < 3; jj++) {
                st_shift_cust = labs(bias_regular[jj] - bias_st[jj]) / 65536.f;
                if (tmp[jj]) {
                    st_shift = 3275.f / test.gyro_sens;
                    while (--tmp[jj])
                        st_shift *= 1.046f;
                    st_shift_var = st_shift_cust / st_shift - 1.f;
                    if (fabs(st_shift_var) > test.max_gyro_var)
                        result |= 1 << jj;
                } else if ((st_shift_cust < test.min_dps) ||
                    (st_shift_cust > test.max_dps))
                    result |= 1 << jj;
            }

            return result;
        }
        回復

        使用道具 舉報

        ID:123289 發表于 2021-10-25 15:44 | 顯示全部樓層
        自檢函數是你自己寫的嗎?
        回復

        使用道具 舉報

        ID:696378 發表于 2021-10-25 15:48 | 顯示全部樓層
        yzwzfyz 發表于 2021-10-25 15:44
        自檢函數是你自己寫的嗎?

        在官方庫函數上改動了一些,用的是硬件iic
        回復

        使用道具 舉報

        ID:313048 發表于 2021-10-25 17:46 | 顯示全部樓層
        考慮一下是不是硬件IIC的時序和MPU6050的時許有些許對不上
        回復

        使用道具 舉報

        您需要登錄后才可以回帖 登錄 | 立即注冊

        本版積分規則

        小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

        Powered by 單片機教程網

        快速回復 返回頂部 返回列表