mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-25 03:47:46 +08:00
代码规范
This commit is contained in:
@@ -165,7 +165,7 @@ FDCANInstance *FDCANRegister(FDCAN_Init_Config_s *config)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FDCANInstance *instance = (FDCANInstance *) malloc(sizeof(FDCANInstance)); // 分配空间
|
auto instance = (FDCANInstance *) malloc(sizeof(FDCANInstance)); // 分配空间
|
||||||
memset(instance, 0, sizeof(FDCANInstance)); // 分配的空间未必是0,所以要先清空
|
memset(instance, 0, sizeof(FDCANInstance)); // 分配的空间未必是0,所以要先清空
|
||||||
|
|
||||||
// 进行发送报文的配置
|
// 进行发送报文的配置
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|||||||
|
|
||||||
GPIOInstance *GPIORegister(GPIO_Init_Config_s *GPIO_config)
|
GPIOInstance *GPIORegister(GPIO_Init_Config_s *GPIO_config)
|
||||||
{
|
{
|
||||||
GPIOInstance *ins = (GPIOInstance *) malloc(sizeof(GPIOInstance));
|
auto ins = (GPIOInstance *) malloc(sizeof(GPIOInstance));
|
||||||
memset(ins, 0, sizeof(GPIOInstance));
|
memset(ins, 0, sizeof(GPIOInstance));
|
||||||
|
|
||||||
ins->GPIOx = GPIO_config->GPIOx;
|
ins->GPIOx = GPIO_config->GPIOx;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ SPIInstance *SPIRegister(SPI_Init_Config_s *conf)
|
|||||||
{
|
{
|
||||||
if (idx >= MX_SPI_BUS_SLAVE_CNT) // 超过最大实例数
|
if (idx >= MX_SPI_BUS_SLAVE_CNT) // 超过最大实例数
|
||||||
while (1);
|
while (1);
|
||||||
SPIInstance *instance = (SPIInstance *) malloc(sizeof(SPIInstance));
|
auto instance = (SPIInstance *) malloc(sizeof(SPIInstance));
|
||||||
memset(instance, 0, sizeof(SPIInstance));
|
memset(instance, 0, sizeof(SPIInstance));
|
||||||
|
|
||||||
instance->spi_handle = conf->spi_handle;
|
instance->spi_handle = conf->spi_handle;
|
||||||
|
|||||||
@@ -266,7 +266,9 @@ void Kalman_Filter_Measure(KalmanFilter_t *kf)
|
|||||||
// 矩阵H K R根据量测情况自动调整
|
// 矩阵H K R根据量测情况自动调整
|
||||||
// matrix H K R auto adjustment
|
// matrix H K R auto adjustment
|
||||||
if (kf->UseAutoAdjustment != 0)
|
if (kf->UseAutoAdjustment != 0)
|
||||||
|
{
|
||||||
H_K_R_Adjustment(kf);
|
H_K_R_Adjustment(kf);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
memcpy(kf->z_data, kf->MeasuredVector, sizeof_float * kf->zSize);
|
memcpy(kf->z_data, kf->MeasuredVector, sizeof_float * kf->zSize);
|
||||||
|
|||||||
@@ -205,7 +205,9 @@ void Calibrate_MPU_Offset(IMU_Data_t *bmi088)
|
|||||||
|
|
||||||
gNormDiff = gNormMax - gNormMin;
|
gNormDiff = gNormMax - gNormMin;
|
||||||
for (uint8_t j = 0; j < 3; ++j)
|
for (uint8_t j = 0; j < 3; ++j)
|
||||||
|
{
|
||||||
gyroDiff[j] = gyroMax[j] - gyroMin[j];
|
gyroDiff[j] = gyroMax[j] - gyroMin[j];
|
||||||
|
}
|
||||||
if (gNormDiff > 0.5f ||
|
if (gNormDiff > 0.5f ||
|
||||||
gyroDiff[0] > 0.5f || //0.15
|
gyroDiff[0] > 0.5f || //0.15
|
||||||
gyroDiff[1] > 0.5f || //0.15
|
gyroDiff[1] > 0.5f || //0.15
|
||||||
@@ -220,7 +222,9 @@ void Calibrate_MPU_Offset(IMU_Data_t *bmi088)
|
|||||||
|
|
||||||
bmi088->gNorm /= (float) CaliTimes;
|
bmi088->gNorm /= (float) CaliTimes;
|
||||||
for (uint8_t i = 0; i < 3; ++i)
|
for (uint8_t i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
bmi088->GyroOffset[i] /= (float) CaliTimes;
|
bmi088->GyroOffset[i] /= (float) CaliTimes;
|
||||||
|
}
|
||||||
|
|
||||||
BMI088_accel_read_muli_reg(BMI088_TEMP_M, buf, 2);
|
BMI088_accel_read_muli_reg(BMI088_TEMP_M, buf, 2);
|
||||||
bmi088_raw_temp = (int16_t) ((buf[0] << 3) | (buf[1] >> 5));
|
bmi088_raw_temp = (int16_t) ((buf[0] << 3) | (buf[1] >> 5));
|
||||||
|
|||||||
@@ -67,7 +67,9 @@ static void InitQuaternion(float *init_q4)
|
|||||||
DWT_Delay(0.001);
|
DWT_Delay(0.001);
|
||||||
}
|
}
|
||||||
for (uint8_t i = 0; i < 3; ++i)
|
for (uint8_t i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
acc_init[i] /= 100;
|
acc_init[i] /= 100;
|
||||||
|
}
|
||||||
Norm3d(acc_init);
|
Norm3d(acc_init);
|
||||||
// 计算原始加速度矢量和导航系重力加速度矢量的夹角
|
// 计算原始加速度矢量和导航系重力加速度矢量的夹角
|
||||||
float angle = acosf(Dot3d(acc_init, gravity_norm));
|
float angle = acosf(Dot3d(acc_init, gravity_norm));
|
||||||
@@ -75,7 +77,9 @@ static void InitQuaternion(float *init_q4)
|
|||||||
Norm3d(axis_rot);
|
Norm3d(axis_rot);
|
||||||
init_q4[0] = cosf(angle / 2.0f);
|
init_q4[0] = cosf(angle / 2.0f);
|
||||||
for (uint8_t i = 0; i < 2; ++i)
|
for (uint8_t i = 0; i < 2; ++i)
|
||||||
|
{
|
||||||
init_q4[i + 1] = axis_rot[i] * sinf(angle / 2.0f); // 轴角公式,第三轴为0(没有z轴分量)
|
init_q4[i + 1] = axis_rot[i] * sinf(angle / 2.0f); // 轴角公式,第三轴为0(没有z轴分量)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
attitude_t *INS_Init(void)
|
attitude_t *INS_Init(void)
|
||||||
@@ -265,7 +269,9 @@ static void IMU_Param_Correction(IMU_Param_t *param, float gyro[3], float accel[
|
|||||||
}
|
}
|
||||||
float gyro_temp[3];
|
float gyro_temp[3];
|
||||||
for (uint8_t i = 0; i < 3; ++i)
|
for (uint8_t i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
gyro_temp[i] = gyro[i] * param->scale[i];
|
gyro_temp[i] = gyro[i] * param->scale[i];
|
||||||
|
}
|
||||||
|
|
||||||
gyro[X] = c_11 * gyro_temp[X] +
|
gyro[X] = c_11 * gyro_temp[X] +
|
||||||
c_12 * gyro_temp[Y] +
|
c_12 * gyro_temp[Y] +
|
||||||
@@ -279,7 +285,9 @@ static void IMU_Param_Correction(IMU_Param_t *param, float gyro[3], float accel[
|
|||||||
|
|
||||||
float accel_temp[3];
|
float accel_temp[3];
|
||||||
for (uint8_t i = 0; i < 3; ++i)
|
for (uint8_t i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
accel_temp[i] = accel[i];
|
accel_temp[i] = accel[i];
|
||||||
|
}
|
||||||
|
|
||||||
accel[X] = c_11 * accel_temp[X] +
|
accel[X] = c_11 * accel_temp[X] +
|
||||||
c_12 * accel_temp[Y] +
|
c_12 * accel_temp[Y] +
|
||||||
|
|||||||
@@ -38,11 +38,11 @@ void PowerMeterDecode(FDCANInstance *instance)
|
|||||||
measure->dt = DWT_GetDeltaT(&power_meter_instance->feed_cnt);
|
measure->dt = DWT_GetDeltaT(&power_meter_instance->feed_cnt);
|
||||||
|
|
||||||
// 解析电流数据 (放大100倍,需要除以100)
|
// 解析电流数据 (放大100倍,需要除以100)
|
||||||
int16_t current_raw = (int16_t) ((rxbuff[1] << 8) | rxbuff[0]);
|
auto current_raw = (int16_t) ((rxbuff[1] << 8) | rxbuff[0]);
|
||||||
measure->current = (float) current_raw / 100.0f;
|
measure->current = (float) current_raw / 100.0f;
|
||||||
|
|
||||||
// 解析电压数据 (放大100倍,需要除以100)
|
// 解析电压数据 (放大100倍,需要除以100)
|
||||||
int16_t voltage_raw = (int16_t) ((rxbuff[3] << 8) | rxbuff[2]);
|
auto voltage_raw = (int16_t) ((rxbuff[3] << 8) | rxbuff[2]);
|
||||||
measure->voltage = (float) voltage_raw / 100.0f;
|
measure->voltage = (float) voltage_raw / 100.0f;
|
||||||
|
|
||||||
// 计算功率
|
// 计算功率
|
||||||
|
|||||||
Reference in New Issue
Block a user