diff --git a/src/main/drivers/accgyro/accgyro_mpu.c b/src/main/drivers/accgyro/accgyro_mpu.c index 08cf4dc707..2ded5b0d7f 100644 --- a/src/main/drivers/accgyro/accgyro_mpu.c +++ b/src/main/drivers/accgyro/accgyro_mpu.c @@ -245,7 +245,7 @@ bool mpuAccReadSPI(accDev_t *acc) // up an old value. // This data was read from the gyro, which is the same SPI device as the acc - uint16_t *accData = (uint16_t *)acc->gyro->dev.rxBuf; + int16_t *accData = (int16_t *)acc->gyro->dev.rxBuf; acc->ADCRaw[X] = __builtin_bswap16(accData[1]); acc->ADCRaw[Y] = __builtin_bswap16(accData[2]); acc->ADCRaw[Z] = __builtin_bswap16(accData[3]); @@ -262,7 +262,7 @@ bool mpuAccReadSPI(accDev_t *acc) bool mpuGyroReadSPI(gyroDev_t *gyro) { - uint16_t *gyroData = (uint16_t *)gyro->dev.rxBuf; + int16_t *gyroData = (int16_t *)gyro->dev.rxBuf; switch (gyro->gyroModeSPI) { case GYRO_EXTI_INIT: { diff --git a/src/main/drivers/accgyro/accgyro_spi_bmi160.c b/src/main/drivers/accgyro/accgyro_spi_bmi160.c index ccd854cd4b..99654624c6 100644 --- a/src/main/drivers/accgyro/accgyro_spi_bmi160.c +++ b/src/main/drivers/accgyro/accgyro_spi_bmi160.c @@ -329,7 +329,7 @@ static bool bmi160AccRead(accDev_t *acc) // Wait for completion spiWait(&acc->gyro->dev); - uint16_t *accData = (uint16_t *)dev->rxBuf; + int16_t *accData = (int16_t *)dev->rxBuf; acc->ADCRaw[X] = accData[1]; acc->ADCRaw[Y] = accData[2]; acc->ADCRaw[Z] = accData[3]; @@ -342,7 +342,7 @@ static bool bmi160AccRead(accDev_t *acc) // up an old value. // This data was read from the gyro, which is the same SPI device as the acc - uint16_t *accData = (uint16_t *)dev->rxBuf; + int16_t *accData = (int16_t *)dev->rxBuf; acc->ADCRaw[X] = accData[4]; acc->ADCRaw[Y] = accData[5]; acc->ADCRaw[Z] = accData[6]; @@ -361,7 +361,7 @@ static bool bmi160AccRead(accDev_t *acc) static bool bmi160GyroRead(gyroDev_t *gyro) { extDevice_t *dev = &gyro->dev; - uint16_t *gyroData = (uint16_t *)dev->rxBuf; + int16_t *gyroData = (int16_t *)dev->rxBuf; switch (gyro->gyroModeSPI) { case GYRO_EXTI_INIT: { @@ -377,7 +377,7 @@ static bool bmi160GyroRead(gyroDev_t *gyro) if (spiUseDMA(dev)) { dev->callbackArg = (uint32_t)gyro; dev->txBuf[1] = BMI160_REG_GYR_DATA_X_LSB | 0x80; - gyro->segments[0].len = 14; + gyro->segments[0].len = 13; gyro->segments[0].callback = bmi160Intcallback; gyro->segments[0].u.buffers.txData = &dev->txBuf[1]; gyro->segments[0].u.buffers.rxData = &dev->rxBuf[1]; diff --git a/src/main/drivers/accgyro/accgyro_spi_bmi270.c b/src/main/drivers/accgyro/accgyro_spi_bmi270.c index 7243e189b3..4fba400171 100644 --- a/src/main/drivers/accgyro/accgyro_spi_bmi270.c +++ b/src/main/drivers/accgyro/accgyro_spi_bmi270.c @@ -354,7 +354,7 @@ static bool bmi270AccRead(accDev_t *acc) // up an old value. // This data was read from the gyro, which is the same SPI device as the acc - uint16_t *accData = (uint16_t *)dev->rxBuf; + int16_t *accData = (int16_t *)dev->rxBuf; acc->ADCRaw[X] = accData[1]; acc->ADCRaw[Y] = accData[2]; acc->ADCRaw[Z] = accData[3]; @@ -372,7 +372,7 @@ static bool bmi270AccRead(accDev_t *acc) static bool bmi270GyroReadRegister(gyroDev_t *gyro) { extDevice_t *dev = &gyro->dev; - uint16_t *gyroData = (uint16_t *)dev->rxBuf; + int16_t *gyroData = (int16_t *)dev->rxBuf; switch (gyro->gyroModeSPI) { case GYRO_EXTI_INIT: