diff --git a/src/drivers/imu/mpu9250/mpu9250.cpp b/src/drivers/imu/mpu9250/mpu9250.cpp index 280c1fb154..efd5670918 100644 --- a/src/drivers/imu/mpu9250/mpu9250.cpp +++ b/src/drivers/imu/mpu9250/mpu9250.cpp @@ -495,7 +495,7 @@ MPU9250::check_registers() if ((v = read_reg(_checked_registers[_checked_next], MPU9250_HIGH_BUS_SPEED)) != _checked_values[_checked_next]) { - PX4_DEBUG("reg: %d = %d (should be %d) _reset_wait: %llu", _checked_registers[_checked_next], v, + PX4_DEBUG("reg: %d = %d (should be %d) _reset_wait: %lu", _checked_registers[_checked_next], v, _checked_values[_checked_next], _reset_wait); /* diff --git a/src/drivers/imu/mpu9250/mpu9250.h b/src/drivers/imu/mpu9250/mpu9250.h index ece19ad6c3..890d3a7c8d 100644 --- a/src/drivers/imu/mpu9250/mpu9250.h +++ b/src/drivers/imu/mpu9250/mpu9250.h @@ -214,7 +214,7 @@ struct MPUReport { */ #define MPU9250_LOW_BUS_SPEED 0 #define MPU9250_HIGH_BUS_SPEED 0x8000 -#define MPU9250_REG_MASK 0x00FF +#define MPU9250_REG_MASK 0x00FF # define MPU9250_IS_HIGH_SPEED(r) ((r) & MPU9250_HIGH_BUS_SPEED) # define MPU9250_REG(r) ((r) & MPU9250_REG_MASK) # define MPU9250_SET_SPEED(r, s) ((r)|(s)) diff --git a/src/drivers/imu/mpu9250/mpu9250_i2c.cpp b/src/drivers/imu/mpu9250/mpu9250_i2c.cpp index 943684765e..5e547751e5 100644 --- a/src/drivers/imu/mpu9250/mpu9250_i2c.cpp +++ b/src/drivers/imu/mpu9250/mpu9250_i2c.cpp @@ -43,7 +43,7 @@ #ifdef USE_I2C -device::Device *MPU9250_I2C_interface(int bus, uint32_t address); +device::Device *MPU9250_I2C_interface(int bus, uint32_t address, int bus_frequency); class MPU9250_I2C : public device::I2C { @@ -55,7 +55,7 @@ public: int write(unsigned address, void *data, unsigned count) override; protected: - virtual int probe(); + virtual int probe() override; private: @@ -97,7 +97,7 @@ MPU9250_I2C::read(unsigned reg_speed, void *data, unsigned count) */ uint32_t offset = count < sizeof(MPUReport) ? 0 : offsetof(MPUReport, ACCEL_XOUT_H); uint8_t cmd = MPU9250_REG(reg_speed); - return transfer(&cmd, 1, &((uint8_t *)data)[offset], count); + return transfer(&cmd, 1, &((uint8_t *)data)[offset], count - offset); } int