自学内容网 自学内容网

bme280传感器的IIC命令通信(学习汇总)

首先放上参考文章链接如下:

单片机 BMP280(GY-BM E/P 280模块)大气压强与温度传感器使用详解_gybmp280中文说明书-CSDN博客

【气象检测项目】BME280-CSDN博客 

 对BME280传感器的IIC通信,利用USB转IIC模块实现输入命令控制传感器通信,首先看IIC通信:

对于BME280传感器如何通过输入命令来控制IIC通信 ,主要看测量寄存器、配置寄存器等几个关键寄存器的配置,如下图:

(1)首先是复位寄存器reset的地址0xE0,需要写入数据0xB6将除了身份编号寄存器的数据外的其他寄存器数据全部清零。

(2)而后需要注意0xF2寄存器单独控制湿度(ctrl_hum),原则上bme280和bmp280在多数情况下可以兼容,在此时湿度测量方面是和BMP280的区别点,输入的数据地址越大表示测量湿度对应的数据位越多,也就越精准。

(3)再然后需要注意测量寄存器0xF4,此时测量寄存器可以测量温湿度气压三个值(如果跳过第2步则可测量温度和气压,湿度数据不会发生变化),而对应的数据位则是包含8bit,bit[7:5]表示温度的测量精度,bit[4:2]表示气压的测量精度,从000---111,设置的数据越大对应位数越高,精度也就越高,bit[1:0]则表示模式的设置,一般位11(NOMAL模式)。这一部分具体内容可以参考文章最上面的借鉴链接。

(4) 再然后需要注意配置寄存器0xF5(config),对应的8位数据位,bit[7:5]代表着一般模式的转换时间(数据的测量周期),bit[4:2]设置可以改变接收信号的滤波器系数,bit_1没有做详细说明,bit_0则和SPI的设置有关,一般将此寄存器的数据位配置为0x00即可。

以上4步为写操作,(bmp280可以省略第2步),接下来为读操作:

注意上面对寄存器配置的说明的表格,其中0xF7--0xFE分别表示着温度、湿度和气压三个参量的对应的地址位,所以在设置读地址位的时候,可以将地址为设置为0xF7,对应读出的数据长度应该为8字节也就是64bit,其中温度和气压的对;应地址位各占去4bit固定写为0,因此读出的bit总数应为56bit。当然也可将地址设置为0xFA或者0xFD,可以分别读出温度和湿度的数值。另外上表中寄存器名字的部分lsb、msb和xlsb分别表示温度、湿度和气压的数据位。

汇总下:

写命令:

ECE0B6→ ECF205→ECF4FF→ECF500(其中EC为传感器的器件地址(一般是0x76  SDO接地)左移1位得到的,需要在每个寄存器的地址位前先加上对应的传感器的器件地址。)

读命令:

case1:ECF7→此时读出8字节数据,包含温湿度和气压;

case2:ECFA→此时读出5字节数据,包含温湿度;

case3:ECFD→此时读出2字节数据,包含湿度;

下图以case2为例:

 


原文地址:https://blog.csdn.net/m0_59708799/article/details/144365436

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!