I am new to mbed-os. I am trying to upgrade from mbed-os 5 to mbed-os 6.15 on NUCLEO-STM32F767ZI. I am using MPU 9250 with the library https://os.mbed.com/users/kylongmu/code/MPU9250_SPI//file/084e8ba240c1/MPU9250.cpp/ .
I have changed all the wait function to wait_us() from wait(0.001)and ThisThread::sleep_for() for wait(1) or wait(0.1).
But the imu could not work properly when position changed.
#include “mbed.h”
#include “MPU9250.h” //Include library
#include “swo.h”
DigitalOut myled(PB_11, 1);
SPI spi(PA_7, PA_6, PA_5);
mpu9250_spi imu(spi,PC_4); //define the mpu9250 object
SWO_Channel swo(“channel”);
int main(){
if(imu.init(1,BITS_DLPF_CFG_188HZ)){ //INIT the mpu9250
swo.printf(“\nCouldn’t initialize MPU9250 via SPI!”);
}
swo.printf(“\nWHOAMI=0x%2x\n”,imu.whoami()); //output the I2C address to know if SPI is working, it should be 104
ThisThread::sleep_for(1000);
swo.printf(“Gyro_scale=%u\n”,imu.set_gyro_scale(BITS_FS_2000DPS)); //Set full scale range for gyros
ThisThread::sleep_for(1000);
swo.printf(“Acc_scale=%u\n”,imu.set_acc_scale(BITS_FS_16G)); //Set full scale range for accs
ThisThread::sleep_for(1000);
swo.printf(“AK8963 WHIAM=0x%2x\n”,imu.AK8963_whoami());
ThisThread::sleep_for(100);
imu.AK8963_calib_Magnetometer();
while(1) {
myled = 1;
ThisThread::sleep_for(100);
/*
imu.read_temp();
imu.read_acc();
imu.read_rot();
imu.AK8963_read_Magnetometer();
*/
imu.read_temp();
imu.read_acc();
imu.read_rot();
imu.AK8963_read_Magnetometer();
imu.read_all();
swo.printf(“%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f\n”,
imu.Temperature,
imu.gyroscope_data[0],
imu.gyroscope_data[1],
imu.gyroscope_data[2],
imu.accelerometer_data[0],
imu.accelerometer_data[1],
imu.accelerometer_data[2],
imu.Magnetometer[0],
imu.Magnetometer[1],
imu.Magnetometer[2]
);
myled = 0;
ThisThread::sleep_for(500);
}
}
The Serial Wire Viewer result: (no change when imu get moved)
WHOAMI=0x 0
Gyro_scale=2000
Acc_scale=16
AK8963 WHIAM=0x81
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000
20.937, 0.000, 0.000, 0.000, -15.096, 0.000, 0.000, 0.000, 0.000, 0.000