我正在尝试使用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,它将无法正常工作。