BMP388温度压力传感器开发思路

参数需求:

通讯模式: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输出滤波参数,根据产品需求进行设置

 

注意:温度设置过高的采样速度并对实际数据没有多大的影响,温度的变化是一个较为缓慢的过程

 

 

发布了34 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xuxudeta/article/details/96207956