bme280传感器的IIC命令通信(学习汇总)
首先放上参考文章链接如下:
单片机 BMP280(GY-BM E/P 280模块)大气压强与温度传感器使用详解_gybmp280中文说明书-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)!