参数需求:
通讯模式:I2C
精度等级:最高
需求参数:温度,大气压
滤波系数:可调
注意:调试前确定硬件电路的可靠性
1.供电电源的纹波特性需要满足,会影响AD的采样
2,通讯设置正常
一:完成通用I2C的基础配置,确保整个通讯流程没有错误
二:配置BMP388各个寄存器。
2.1:读取BMP388初始ID,确定通讯正常 正常情况下ID为0X50
注意:精度选择最高,压力32位过采样,压力2倍过采样,设置相应的滤波系数,根据数据表计算
下列为常用的配置寄存器2.2地址分析:
0x0E,0x0F:不是特殊需求可以不设置
0x10:需要可以设置,不必须
0x11:状态位,温度压力等数据状态,在自检函数中需求
0x14:FIFO数据读取寄存区
BMP388数据输出读取可选择FIFO模式和直接寄存器读取
FIFO模式可以存储最大512K的数据,计算机再定时器中断读取数据,这样为计算机节省数据处理的时间和空间。
直接寄存器读取和FIFO读取模式需要在0x17地址中进行配置。当选取FIFO数据读取时候,可以根据使能的温度压力测量需求,每次从FIFO中读取原始AD码,参与每个388内部补偿参数的换算,每次读取7个字节数,1个字节的数据校验,3个温度原始值,3个字节压力原始值,参与补偿运算就可以得到测量的温度和压力值。
注意:I2C数据读取的方向,输出的先是高位,再是低位(BMP280相反)
补偿参数的换算公式,和原始代码可参考官方在github上托管的代码,但是代码的应用系统不同,需要使用者自行提炼
0x15,0x16是FIFO数据长度的存储区,可以判断FIFO的填充状态(512byte大小)
0x17:温度,压力等使能寄存器(必须,初始化设置值)
0x1A:SPI,I2C通讯模式设置,具体参考需求
0X1B:需要设置压力温度使能模式
0x1C:设置过采样倍数
0x1D:设置输出速率(必须)
0x1F:设置AD输出滤波参数,根据产品需求进行设置
注意:温度设置过高的采样速度并对实际数据没有多大的影响,温度的变化是一个较为缓慢的过程