你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
我用的是STM32H7读取MKI-165V1的开发板的大气压的值,我设置输出频率为1,STM32间隔1s读取一次大气压数据,未使用FIFO,得到的IIC大气压数据一直在减少,在一个小时内,数据从1014.117一直减小到1002.970,怎么样能让数据输出的稳定一些
举报
寄存器配置是怎样的?芯片上是否有脏污,堵塞芯片上的通气孔?
采用什么滤波算法,建议多次采样求平均值,或者中值滤波,或者其他更合适的滤波算法。
st_yujie2510 发表于 2025-1-6 08:28 寄存器配置是怎样的?芯片上是否有脏污,堵塞芯片上的通气孔?
uint8_t data = 0x90;
HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x20 , I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY);//注意用哪个IIC
HAL_Delay(10);
data = 0x00;
HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x21 , I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY); // HAL_Delay(10);
// HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x22 , I2C_MEMADD_SIZE_8BIT, pData, Size, 0xFF);
HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x23 , I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY);
HAL_Delay(10); 这个是寄存器初始化部分,气孔是芯片上的白色部分吗?如果是的话,就是没有堵塞
patch1582 发表于 2025-1-6 13:31 采用什么滤波算法,建议多次采样求平均值,或者中值滤波,或者其他更合适的滤波算法。 ...
我的高度没变过,那传感器的值应该趋于稳定,滤波算法没影响吧
你试试:
Reg(10H) = 05H
Reg(2EH) = C1H
Reg(21H) = 40H
Reg(20H) = 94H
st_yujie2510 发表于 2025-1-7 15:08 你试试:</p> <p>Reg(10H) = 05H
还是不稳定,是不是温度补偿的原因呀,我在大概120m海拔高度的室内测试的,这个传感器有什么放置要求吗,比如必须平放之类的
2067 发表于 2025-1-7 15:59</p> <p>还是不稳定,是不是温度补偿的原因呀,我在大概120m海拔高度的室内测试的,这个传感器有什么放置要求 ...
[md]有防止要求,室内恒温、不能开窗、不能有人走动,不能开空调风扇。
其实还是会变化的,因为每天早上中午晚上以及有微风,这个测量值都是在变化的。
这就是为什么测试阶段的战机前面都有一个很长的杆子,也是用来测量气流的,位置需要原理机身,所以只能放到前面很远的地方。这是个极端的例子。
2067 发表于 2025-1-6 16:46 我的高度没变过,那传感器的值应该趋于稳定,滤波算法没影响吧
电压稳定么?有稳压源?
patch1582 发表于 2025-1-8 09:32 电压稳定么?有稳压源?
稳定3.3的
Glenxu 发表于 2025-1-7 22:34 有防止要求,室内恒温、不能开窗、不能有人走动,不能开空调风扇。</p> <p>其实还是会变化的,因为每天早上 ...
[md]变化可以理解,但是 1小时减少几甚至十几hpa就太高了吧
[md]RPDS这两个寄存器怎么用呀,怎么实现One-Point Calibration这个功能呀,这个芯片带不带温度补偿,一些出厂自带的参数会不会对输出有影响
寄存器配置是怎样的?芯片上是否有脏污,堵塞芯片上的通气孔?
采用什么滤波算法,建议多次采样求平均值,或者中值滤波,或者其他更合适的滤波算法。
uint8_t data = 0x90;
HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x20 , I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY);//注意用哪个IIC
HAL_Delay(10);
data = 0x00;
HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x21 , I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY); // HAL_Delay(10);
// HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x22 , I2C_MEMADD_SIZE_8BIT, pData, Size, 0xFF);
HAL_Delay(10);
HAL_I2C_Mem_Write(&hi2c4, 0xB8, 0x23 , I2C_MEMADD_SIZE_8BIT, &data, 1, HAL_MAX_DELAY);
HAL_Delay(10); 这个是寄存器初始化部分,气孔是芯片上的白色部分吗?如果是的话,就是没有堵塞
我的高度没变过,那传感器的值应该趋于稳定,滤波算法没影响吧
你试试:
Reg(10H) = 05H
Reg(2EH) = C1H
Reg(21H) = 40H
Reg(20H) = 94H
还是不稳定,是不是温度补偿的原因呀,我在大概120m海拔高度的室内测试的,这个传感器有什么放置要求吗,比如必须平放之类的
[md]有防止要求,室内恒温、不能开窗、不能有人走动,不能开空调风扇。
其实还是会变化的,因为每天早上中午晚上以及有微风,这个测量值都是在变化的。
这就是为什么测试阶段的战机前面都有一个很长的杆子,也是用来测量气流的,位置需要原理机身,所以只能放到前面很远的地方。这是个极端的例子。
电压稳定么?有稳压源?
稳定3.3的
[md]变化可以理解,但是 1小时减少几甚至十几hpa就太高了吧
[md]RPDS这两个寄存器怎么用呀,怎么实现One-Point Calibration这个功能呀,这个芯片带不带温度补偿,一些出厂自带的参数会不会对输出有影响