使用Atmel Studio 6为Atmega2560(带有HMC5883L、MPU6050和I2Cdev库)构建项目时



这是我的代码:

#include <Wire.h>
#include <I2Cdev.h>
#include <HMC5883L.h>
#include <MPU6050.h>
#include "Arduino.h"
void setup();
void loop();
MPU6050 accelgyro;
HMC5883L mag;
int16_t mx, my, mz;
void setup() {
    Wire.begin();
    accelgyro.initialize();
    accelgyro.setI2CBypassEnabled(true);
    Serial.begin(9600);
    // initialize device
    Serial.println("Initializing I2C devices...");
    mag.initialize();
    // verify connection
    Serial.println("Testing device connections...");
    Serial.println(mag.testConnection() ? "HMC5883L connection successful" : "HMC5883L connection failed");
}
void loop() {
    mag.getHeading(&mx, &my, &mz);
    Serial.print("mag:t");
    Serial.print(mx); Serial.print("t");
    Serial.print(my); Serial.print("t");
    Serial.print(mz); Serial.print("t");
    float heading = atan2(my, mx);
    if(heading < 0)
    heading += 2 * M_PI;
    Serial.print("heading:t");
    Serial.println(heading * 180/M_PI);
}

它可以在Arduino IDE上工作。以下是Atmel Studio 6中的警告(2个未初始化的警告和4个由I2Cdev库生成的警告),没有错误。

warning 5   **'progBuffer' may be used uninitialized in this function [-Wuninitialized]**   D:/Program Files (x86)/Arduino/libraries/MPU6050/MPU6050.cpp    2971    14  HMC
warning 6   **'progBuffer' may be used uninitialized in this function [-Wuninitialized]**   D:/Program Files (x86)/Arduino/libraries/MPU6050/MPU6050.cpp    3076    101 HMC
warning 4   **#warning - Timeout detection (some Wire requests block forever) [-Wcpp]** D:/Program Files (x86)/Arduino/libraries/I2Cdev/I2Cdev.cpp  67  14  HMC
warning 2   **#warning Arduino IDE v1.0.1+ with I2CDEV_BUILTIN_FASTWIRE implementation is recommended. [-Wcpp]**    D:/Program Files (x86)/Arduino/libraries/I2Cdev/I2Cdev.cpp  65  14  HMC
warning 3   **#warning This I2Cdev implementation does not support: [-Wcpp]**   D:/Program Files (x86)/Arduino/libraries/I2Cdev/I2Cdev.cpp  66  14  HMC
warning 1   **#warning Using current Arduino IDE with Wire library is functionally limiting. [-Wcpp]**  D:/Program Files (x86)/Arduino/libraries/I2Cdev/I2Cdev.cpp  64  14  HMC

这是输出:

collect2: ld returned 1 exit status
make: *** [HMC.elf] Error 1

谁能帮我?非常感谢!!

从警告中,我假设编译器告诉您,在您使用的环境中,某些代码/库不可用。因此,代码编译正常,但链接器失败,因为它找不到相应的静态库。

所以,如果是it can work on Arduino IDE,就坚持它(除非有什么原因你没有告诉我们)。

你确定没有更多的链接器错误吗?也许这些记录在某个文件中,请查看。

相关内容

  • 没有找到相关文章

最新更新