Wire1' was not declared in this scope в библиотеке I2C_MPU6886

i2c wire-library imu m5stack

Недавно я приобрел 6-осевой модуль IMU MCP6886 от M5Stack. Ссылка на продукт: https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/IMU_Unit. Пример кода, предоставленный производителем, выглядит следующим образом:

#include "I2C_MPU6886.h"

I2C_MPU6886 imu(I2C_MPU6886_DEFAULT_ADDRESS, Wire1);

void setup() {
  Serial.begin(115200);
  delay(1000);

  Wire1.begin(21, 22);

  imu.begin();
  Serial.print("whoAmI() = 0x%02x\n", imu.whoAmI());
}

void loop() {
  float ax;
  float ay;
  float az;
  float gx;
  float gy;
  float gz;
  float t;

  imu.getAccel(&ax, &ay, &az);
  imu.getGyro(&gx, &gy, &gz);
  imu.getTemp(&t);

  Serial.print("%f,%f,%f,%f,%f,%f,%f\n", ax, ay, az, gx, gy, gz, t);
  
  delay(100);
}

Когда я запускаю этот код в Arduino IDE 1.8.19, я получаю следующую ошибку: ''Wire1' was not declared in this scope'. Я полагаю, что эта проблема связана с самой библиотекой I2C_MPU6886, но я не могу устранить ее. Я использую плату Arduino Uno R3 и запускаю IDE в Windows 11.

, 👍-2

Обсуждение

Какой процессор вы используете?, @romkey

Я использую плату Arduino Uno R3 - значит ... не M5Stack ...? Итак, почему вы используете код M5Stack ...?, @Majenko


1 ответ


3

"M5Stack" - это экосистема плат и периферийных устройств на базе ESP32.

Весь код для периферийных устройств M5Stack написан для системы M5Stack. Не для UNO.

Вы должны найти код для Uno, а не для M5Stack. Код M5Stack не будет работать на Uno, поскольку это совершенно другая система.

,