找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1961|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

各位大佬,問(wèn)一下有關(guān)mpu6050自檢函數(shù)的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:696378 發(fā)表于 2021-10-25 14:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
mpu6050 自檢的結(jié)果返回2,沒(méi)有辦法完成自檢,可能是什么原因,我有將模塊放平,而且將result=3改成2之后,能通過(guò)但是roll的值為177。
自檢函數(shù)內(nèi)部
        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;


自檢函數(shù)外部
        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;

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:696378 發(fā)表于 2021-10-25 14:23 | 只看該作者
  gyro_result = gyro_self_test(gyro, gyro_st); 的結(jié)果為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;
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2021-10-25 15:44 | 只看該作者
自檢函數(shù)是你自己寫(xiě)的嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:696378 發(fā)表于 2021-10-25 15:48 | 只看該作者
yzwzfyz 發(fā)表于 2021-10-25 15:44
自檢函數(shù)是你自己寫(xiě)的嗎?

在官方庫(kù)函數(shù)上改動(dòng)了一些,用的是硬件iic
回復(fù)

使用道具 舉報(bào)

5#
ID:313048 發(fā)表于 2021-10-25 17:46 | 只看該作者
考慮一下是不是硬件IIC的時(shí)序和MPU6050的時(shí)許有些許對(duì)不上
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表