我正在尝试使用德州仪器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()方法无法正常运行?在使用这种语言进行编程方面,我是一名相对初学者,但我正在进行一项雄心勃勃的任务,即为我申请的奖学金创建一个机器人,因此我非常感谢这个领域的一些帮助。
答案 0 :(得分:0)
我刚刚遇到了和你一样的问题。这是一个有用的链接: enter link description here 我之前提到过并添加了一些代码 Wire.begin() - 像这样 enter image description here 然后我上传并运行,它完美无缺。还有一件事需要注意,当你不使用DMP时你不能连接INT引脚但是当你使用DMP时你必须连接INT引脚。
我试着解释一下。 我们为什么要添加两行代码?该库来自Arduino,虽然Energia在大多数情况下与Arduino编程兼容,但并非总是如此。所以我们应该明确表示赞同。
为什么我们要注意中断。因为当我们使用DMP时我们使用它,如果我们不连接INT引脚,它将无法正常工作。