与SparkFun MPU-6050与Texas Instruments TM4C123G发射板进行接口



我正在尝试使用Texas Instruments 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->引脚1(3.3V)

gnd->引脚12(gnd)

int->引脚34(PF0)

fsync->无

scl->引脚13(PD0)

SDA->引脚14(PD1)

vio->无

clk->无

ascl->无

asda->无

我从GitHub获得了MPU6050和I2CDEV库,并从 github.com/codebendercc/codebendercc/arduino-library-files/blob/master/master/libraries/libraries/wire/wire/wire.h 但是,我认为要么 wire.begin() accelgyro.initialize()方法无法正常运行吗?我是用这种语言编程的相对初学者,但我正在雄心勃勃地为我申请的奖学金创建一个机器人,因此会在此主题领域上提供一些帮助。

我刚刚遇到了与您相同的问题。这是一个有用的联系:在此处输入链接说明我提到了它并添加了一些代码 wire.begin() - 像这样在此处输入图像描述然后,我上传并运行,它可以完美地工作。还有另一件事要注意到,当您不使用DMP时,您无法连接int Pin,但是当您使用DMP时,您必须连接int pin。

我试图解释它。为什么要添加两个行代码?该库来自Arduino,尽管在大多数情况下,Energia与Arduino编程兼容,但并非总是如此。因此,我们应该解释一些东西。

为什么我们应该注意中断。因为当我们使用DMP时,我们使用它,如果我们不连接int pin,它将无法正常工作。

最新更新