#include <Wire.h>
#define MPU6050_ADDR 0x68
void writeMPU6050(byte reg, byte data) {
Wire.beginTransmission(MPU6050_ADDR);
Wire.write(reg);
Wire.write(data);
Wire.endTransmission();
}
byte readMPU6050(byte reg) {
Wire.beginTransmission(MPU6050_ADDR);
Wire.write(reg);
Wire.endTransmission();
Wire.requestFrom(MPU6050_ADDR, 1);
byte data = Wire.read();
return data;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Wire.begin();
byte gyroVal, acceVal, val;
writeMPU6050(0x6B, 0x01);
Serial.print("模块当前I2C地址:");
val = readMPU6050(0x75);
Serial.println(val, HEX);
Serial.print("当前量程为:");
gyroVal = readMPU6050(0x1B);
Serial.println(gyroVal, BIN);
acceVal = readMPU6050(0x1C);
Serial.println(acceVal, BIN);
writeMPU6050(0x1B, 0b11000);
writeMPU6050(0x1C, 0b11000);
Serial.print("设置后的量程为:");
gyroVal = readMPU6050(0x1B);
Serial.println(gyroVal, BIN);
acceVal = readMPU6050(0x1C);
Serial.println(acceVal, BIN);
writeMPU6050(0x1B, gyroVal);
writeMPU6050(0x1C, acceVal);
}
void loop() {
// put your main code here, to run repeatedly:
}