release bmi088 to dwt delay

This commit is contained in:
TuxMonkey
2025-11-16 21:05:10 +08:00
parent 66da7a1935
commit 38264c53e1
2 changed files with 17 additions and 22 deletions

View File

@@ -246,27 +246,23 @@ uint8_t bmi088_accel_init(void)
{ {
// check commiunication // check commiunication
BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res); BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res);
// DWT_Delay(0.001); DWT_Delay(0.001);
HAL_Delay(BMI088_LONG_DELAY_TIME);
BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res); BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res);
// DWT_Delay(0.001); DWT_Delay(0.001);
HAL_Delay(BMI088_LONG_DELAY_TIME);
// accel software reset // accel software reset
BMI088_accel_write_single_reg(BMI088_ACC_SOFTRESET, BMI088_ACC_SOFTRESET_VALUE); BMI088_accel_write_single_reg(BMI088_ACC_SOFTRESET, BMI088_ACC_SOFTRESET_VALUE);
// HAL_Delay(BMI088_LONG_DELAY_TIME); // HAL_Delay(BMI088_LONG_DELAY_TIME);
HAL_Delay(BMI088_COM_WAIT_SENSOR_TIME); DWT_Delay(0.08);
// check commiunication is normal after reset // check commiunication is normal after reset
BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res); BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res);
// DWT_Delay(0.001); DWT_Delay(0.001);
HAL_Delay(BMI088_LONG_DELAY_TIME);
BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res); BMI088_accel_read_single_reg(BMI088_ACC_CHIP_ID, res);
// DWT_Delay(0.001); DWT_Delay(0.001);
HAL_Delay(BMI088_LONG_DELAY_TIME);
// check the "who am I" // check the "who am I"
if (res != BMI088_ACC_CHIP_ID_VALUE) if (res != BMI088_ACC_CHIP_ID_VALUE)
{ {
// Todo: LOGERROR("[bmi088] Can not read bmi088 acc chip id"); // LOGERROR("[bmi088] Can not read bmi088 acc chip id");
return BMI088_NO_SENSOR; return BMI088_NO_SENSOR;
} }
@@ -276,12 +272,10 @@ uint8_t bmi088_accel_init(void)
BMI088_accel_write_single_reg(BMI088_Accel_Init_Table[write_reg_num][0], BMI088_accel_write_single_reg(BMI088_Accel_Init_Table[write_reg_num][0],
BMI088_Accel_Init_Table[write_reg_num][1]); BMI088_Accel_Init_Table[write_reg_num][1]);
// DWT_Delay(0.001); DWT_Delay(0.001);
HAL_Delay(BMI088_LONG_DELAY_TIME);
BMI088_accel_read_single_reg(BMI088_Accel_Init_Table[write_reg_num][0], res); BMI088_accel_read_single_reg(BMI088_Accel_Init_Table[write_reg_num][0], res);
// DWT_Delay(0.001); DWT_Delay(0.001);
HAL_Delay(BMI088_LONG_DELAY_TIME);
if (res != BMI088_Accel_Init_Table[write_reg_num][1]) if (res != BMI088_Accel_Init_Table[write_reg_num][1])
{ {
@@ -297,24 +291,24 @@ uint8_t bmi088_gyro_init(void)
{ {
// check commiunication // check commiunication
BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res); BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res);
HAL_Delay(BMI088_LONG_DELAY_TIME); DWT_Delay(0.001);
BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res); BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res);
HAL_Delay(BMI088_LONG_DELAY_TIME); DWT_Delay(0.001);
// reset the gyro sensor // reset the gyro sensor
BMI088_gyro_write_single_reg(BMI088_GYRO_SOFTRESET, BMI088_GYRO_SOFTRESET_VALUE); BMI088_gyro_write_single_reg(BMI088_GYRO_SOFTRESET, BMI088_GYRO_SOFTRESET_VALUE);
// HAL_Delay(BMI088_LONG_DELAY_TIME); // HAL_Delay(BMI088_LONG_DELAY_TIME);
HAL_Delay(BMI088_COM_WAIT_SENSOR_TIME); DWT_Delay(0.08);
// check commiunication is normal after reset // check commiunication is normal after reset
BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res); BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res);
HAL_Delay(BMI088_LONG_DELAY_TIME); DWT_Delay(0.001);
BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res); BMI088_gyro_read_single_reg(BMI088_GYRO_CHIP_ID, res);
HAL_Delay(BMI088_LONG_DELAY_TIME); DWT_Delay(0.001);
// check the "who am I" // check the "who am I"
if (res != BMI088_GYRO_CHIP_ID_VALUE) if (res != BMI088_GYRO_CHIP_ID_VALUE)
{ {
//Todo: LOGERROR("[bmi088] Can not read bmi088 gyro chip id"); // LOGERROR("[bmi088] Can not read bmi088 gyro chip id");
return BMI088_NO_SENSOR; return BMI088_NO_SENSOR;
} }
@@ -324,10 +318,10 @@ uint8_t bmi088_gyro_init(void)
BMI088_gyro_write_single_reg(BMI088_Gyro_Init_Table[write_reg_num][0], BMI088_gyro_write_single_reg(BMI088_Gyro_Init_Table[write_reg_num][0],
BMI088_Gyro_Init_Table[write_reg_num][1]); BMI088_Gyro_Init_Table[write_reg_num][1]);
HAL_Delay(BMI088_LONG_DELAY_TIME); DWT_Delay(0.001);
BMI088_gyro_read_single_reg(BMI088_Gyro_Init_Table[write_reg_num][0], res); BMI088_gyro_read_single_reg(BMI088_Gyro_Init_Table[write_reg_num][0], res);
HAL_Delay(BMI088_LONG_DELAY_TIME); //但是不知道为什么还是yaw pitch还是nan DWT_Delay(0.001);
if (res != BMI088_Gyro_Init_Table[write_reg_num][1]) if (res != BMI088_Gyro_Init_Table[write_reg_num][1])
{ {

View File

@@ -33,6 +33,7 @@ void OnProjectLoad (void) {
// //
// User settings // User settings
// //
Project.SetOSPlugin ("FreeRTOSPlugin");
File.Open ("D:/RM/Elec Control/TronOneH7_Scaffold/cmake-build-debug/TronOneH7_Scaffold.elf"); File.Open ("D:/RM/Elec Control/TronOneH7_Scaffold/cmake-build-debug/TronOneH7_Scaffold.elf");
} }