qq_34784245 2016-04-25 06:24 采纳率: 0%
浏览 885

edison连接mpu6050代码看不大懂

#include "math.h"
#include "stdio.h"
#include "mraa.h"
#include "unistd.h"

#define MPU6050_I2C_ADDR 0x68
#define PWR_MGMT_1 0x6B
#define SMPLRT_DIV 0x19
#define CONFIG 0x1A
#define GYRO_CONFIG 0x1B
#define ACCEL_CONFIG 0x1C

int main(int argc, char *argv[]) {
uint8_t rx[6];
mraa_init();
mraa_i2c_context i2c;
i2c = mraa_i2c_init(0);
uint8_t rx_tx_buf[2];
if(mraa_i2c_address(i2c, MPU6050_I2C_ADDR)==MRAA_SUCCESS){
printf("found sensor!\n");
}

rx_tx_buf[0] = PWR_MGMT_1;
rx_tx_buf[1] = 0x00;
if(mraa_i2c_write(i2c,rx_tx_buf,2)==MRAA_SUCCESS){
    printf("initial POWER success!\n");
}

rx_tx_buf[0] = SMPLRT_DIV;
rx_tx_buf[1] = 0x07;//为什么要设置成0X07??
if(mraa_i2c_write(i2c,rx_tx_buf,2)==MRAA_SUCCESS){
    printf("initial SMPLRT_DIV success!\n");
}

rx_tx_buf[0] = CONFIG;
rx_tx_buf[1] = 0x06;//为什么是0x06?
if(mraa_i2c_write(i2c,rx_tx_buf,2)==MRAA_SUCCESS){
    printf("initial CONFIG_RIG success!\n");
}

rx_tx_buf[0] = GYRO_CONFIG;
rx_tx_buf[1] = 0x18;//为什么是0x18
if(mraa_i2c_write(i2c,rx_tx_buf,2)==MRAA_SUCCESS){
    printf("initial GYRO_CONFIG success!\n");
}

rx_tx_buf[0] = ACCEL_CONFIG;
rx_tx_buf[1] = 0x10;
if(mraa_i2c_write(i2c,rx_tx_buf,2)==MRAA_SUCCESS){
    printf("initial ACCEL_CONFIG success!\n");
}

while(1)
{
    if(mraa_i2c_write_byte(i2c,0x3B)==MRAA_SUCCESS){
    //  printf("write reg success!\n");
    }

    mraa_i2c_read(i2c,rx,6);
    printf("x=%f, ",(float)(short)((rx[0]<<8)+rx[1])/4096.0); //这个不明白
    printf("y=%f, ",(float)(short)((rx[2]<<8)+rx[3])/4096.0);
    printf("z=%f, ",(float)(short)((rx[4]<<8)+rx[5])/4096.0);
    printf("\n");
    sleep(1);
} 
return 0; 

}
代码如上 是可以运行的。但是有几处不懂. 我是大二学生 刚开始接触edison板子 请大神解答 越详细越好!

  • 写回答

1条回答

  • dabocaiqq 2018-05-14 16:12
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况