你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

LSM6DS3TR-C静止情况下使用MotionFX固件算出的欧拉角周期性异常跳动

[复制链接]
moshyou 提问时间:2026-1-7 10:18 / 未解决

如题,LSM6DS3TR-C使用MotionFX固件算出的欧拉角周期性异常跳动,跳动几十度或者100多度,随机的,但是俯仰角、横滚角跳动后又很快恢复正常,而倾斜角无法恢复正常(倾斜角应用中不使用,即使跳动不影响) 我的mcu是stm32f407vgt6,根据网上大神提供的例程,使用iic周期性采集数据并计算出欧拉角,但是发现芯片在完全静止的情况下,会周期性异常跳动。

根据网上介绍的说是ipKnobs->LMode = 1;会在静止的时候进行零偏校准导致的,但是我把LMode=0或2后也还是会发现异常跳动,

收藏 评论2 发布时间:2026-1-7 10:18

举报

2个回答
moshyou 回答时间:昨天 10:21

我使用cubemx得到最新的库文件,MotionFX_CM4F_wc16_ot.a

初始化函数

  • Main Example --------------------------------------------------------------/ void lsm6ds3tr_c_read_data_polling(void) { / Initialize mems driver interface */

    my_dev_ctx.write_reg = platform_write; my_dev_ctx.read_reg = platform_read; my_dev_ctx.handle = ts; / Init test platform / // platform_init(); / Wait sensor boot time / platform_delay(BOOT_TIME); / Check device ID /

    u8 t_err_count1 = 0; while(1) { whoamI = 0;

// whoamI = Read_Byte_i2c_2(); lsm6ds3tr_c_device_id_get(&my_dev_ctx, &whoamI);

if ( whoamI == LSM6DS3TR_C_ID )
{
//  while (1); /*manage here device not found */
    break;

}
delay_ms(20);
t_err_count1 ++;

if(t_err_count1 > 3)
{
params.WorkState_Real2.bit.Mpu_power_on_state = 0;
return ;
}

}

t_err_count1 = 0;

params.WorkState_Real2.bit.Mpu_power_on_state = 1; / Restore default configuration / lsm6ds3tr_c_reset_set(&my_dev_ctx, PROPERTY_ENABLE);

while(1) { rst = 1; lsm6ds3tr_c_reset_get(&my_dev_ctx, &rst);

if(rst == 0)
{

    break;
}


delay_ms(20);
t_err_count1 ++;

if(t_err_count1 > 3)
{
    params.WorkState_Real2.bit.Mpu_dmp_power_on_state = 0;
return ;
}   

}

/ Set full scale / lsm6ds3tr_c_xl_full_scale_set(&my_dev_ctx, LSM6DS3TR_C_4g); lsm6ds3tr_c_gy_full_scale_set(&my_dev_ctx, LSM6DS3TR_C_2000dps);

/ Enable Block Data Update / lsm6ds3tr_c_block_data_update_set(&my_dev_ctx, PROPERTY_ENABLE);

/ Configure filtering chain(No aux interface) /

lsm6ds3tr_c_xl_power_mode_set(&my_dev_ctx, LSM6DS3TR_C_XL_HIGH_PERFORMANCE);

/ Set Output Data Rate / lsm6ds3tr_c_xl_data_rate_set(&my_dev_ctx, LSM6DS3TR_C_XL_ODR_52Hz); lsm6ds3tr_c_gy_data_rate_set(&my_dev_ctx, LSM6DS3TR_C_GY_ODR_52Hz);

if 1

/* 设置FIFO水印为模式的倍数

  • 在本例中,我们将水印设置为10个模式
  • 这意味着10个序列:
  • (陀螺仪 + 加速度计) = 12字节
  • (外部传感器 + 时间戳) = 12字节 / lsm6ds3tr_c_int1_route_t int_1_reg; uint16_t pattern_len = 24; // 每个数据集由6个字节组成,46=24 lsm6ds3tr_c_fifo_watermark_set(&my_dev_ctx, 1 * pattern_len);

/ 将FIFO模式设置为流模式 / //FIFO_CTRL5(0x0A)->STREAM_MODE lsm6ds3tr_c_fifo_mode_set(&my_dev_ctx, LSM6DS3TR_C_STREAM_MODE);

/ 启用时间戳并将其添加到FIFO / //CTRL10_C (19h)->TIMER_EN lsm6ds3tr_c_timestamp_set(&my_dev_ctx, PROPERTY_ENABLE); //CTRL10_C (19h)->PEDO_EN lsm6ds3tr_c_pedo_sens_set(&my_dev_ctx, PROPERTY_ENABLE); // 根据需求配置步数计数

/ 将时间戳分辨率设置为25 μs (WAKE_UP_DUR寄存器中的TIMER_HR位) / //WAKE_UP_DUR (5Ch)->TIMER_HR lsm6ds3tr_c_timestamp_res_set(&my_dev_ctx, LSM6DS3TR_C_LSB_25us);

//设置第3数据集(Dataset 3)的降采样因子 lsm6ds3tr_c_fifo_dataset_3_batch_set(&my_dev_ctx, LSM6DS3TR_C_FIFO_DS3_NO_DEC); //设置第4数据集(Dataset 4)的降采样因子 //FIFO_CTRL4 (09h)->DEC_DS4_FIFO[2:0] lsm6ds3tr_c_fifo_dataset_4_batch_set(&my_dev_ctx, LSM6DS3TR_C_FIFO_DS4_NO_DEC);

// 启用时间戳写入FIFO第四数据集 //FIFO_CTRL2 (07h)->TIMER_PEDO_FIFO_EN lsm6ds3tr_c_fifo_pedo_and_timestamp_batch_set(&my_dev_ctx, PROPERTY_ENABLE);

/ 设置FIFO传感器的降采样因子 / lsm6ds3tr_c_fifo_xl_batch_set(&my_dev_ctx, LSM6DS3TR_C_FIFO_XL_NO_DEC); lsm6ds3tr_c_fifo_gy_batch_set(&my_dev_ctx, LSM6DS3TR_C_FIFO_GY_NO_DEC);

/ 设置FIFO的输出数据速率 / //FIFO_CTRL5 (0Ah) lsm6ds3tr_c_fifo_data_rate_set(&my_dev_ctx, LSM6DS3TR_C_FIFO_416Hz); //———————————————— //版权声明:本文为CSDN博主「记帖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 //原文链接:https://blog.csdn.net/qq_24312945/article/details/140112859

lsm6ds3tr_c_init();

endif

params.WorkState_Real2.bit.Mpu_dmp_power_on_state = 1;

d_mpu6050_self_success_flag1 = 1;

d_Init_MPU6050_ok_flag1 = 1;

d_is_stop_read_mp6500_data_flag1 = 0; //

}

moshyou 回答时间:昨天 10:22

大概间隔15ms去轮训采集和计算

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版