使用Texas Instruments TM4C123G LaunchPad与SparkFun mpu-6050连接

时间:2017-02-27 17:45:58

标签: microcontroller libraries texas-instruments mpu6050

我正在尝试使用德州仪器TM4C123G LaunchPad与MPU-6050作为机器人项目的一部分进行交互。我正在从Energia上传代码并使用串行监视器查看原始数据输出,但是当我将其上传到微控制器并运行它时,我只收到以下输出:

Initialising I2C devices...

以下是我尝试运行的代码:

#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>

MPU6050 accelgyro;

void Setup_MPU6050()
{
  Wire.begin();
  Serial.println("Initialising I2C devices...");
  accelgyro.initialize();
  Serial.println("Testing device connections...");
  Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
}

void Update_MPU6050()
{
  int16_t ax, ay, az;
  int16_t gx, gy, gz;
  accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  Serial.print("i");Serial.print("\t");
  Serial.print(ax);Serial.print("\t");
  Serial.print(ay);Serial.print("\t");
  Serial.print(az);Serial.print("\t");
  Serial.print(gx);Serial.print("\t");
  Serial.print(gy);Serial.print("\t");
  Serial.println(gz);
  Serial.print("\n");
}

void setup()
{
  Serial.begin(115200);
  Setup_MPU6050();
}

void loop()
{
  Update_MPU6050();
}

分线板上的引脚连接到Launchpad,如下所示:

VDD - &gt;第1针(3.3v)

GND - &gt;引脚12(GND)

INT - &gt;引脚34(PF0)

FSYNC - &gt;无

SCL - &gt;第13针(PD0)

SDA - &gt;第14针(PD1)

VIO - &gt;无

CLK - &gt;无

ASCL - &gt;无

ASDA - &gt;无

我从GitHub获得了MPU6050和I2Cdev库,并且从 github.com/codebendercc/arduino-library-files/blob/master/libraries/Wire/Wire.h获得了Wire库。 但我认为 wire.begin() accelgyro.initialize()方法无法正常运行?在使用这种语言进行编程方面,我是一名相对初学者,但我正在进行一项雄心勃勃的任务,即为我申请的奖学金创建一个机器人,因此我非常感谢这个领域的一些帮助。

1 个答案:

答案 0 :(得分:0)

我刚刚遇到了和你一样的问题。这是一个有用的链接: enter link description here 我之前提到过并添加了一些代码            Wire.begin() - 像这样 enter image description here 然后我上传并运行,它完美无缺。还有一件事需要注意,当你不使用DMP时你不能连接INT引脚但是当你使用DMP时你必须连接INT引脚。

我试着解释一下。 我们为什么要添加两行代码?该库来自Arduino,虽然Energia在大多数情况下与Arduino编程兼容,但并非总是如此。所以我们应该明确表示赞同。

为什么我们要注意中断。因为当我们使用DMP时我们使用它,如果我们不连接INT引脚,它将无法正常工作。