BMP388 Barometric Pressure Sensor 
   
 
BMP388 Barometric Pressure Sensor 
用户手册 
 
产 品 概 述  
这是一款 24 位高精度气压传感器,可实现精确的高度跟踪,检测大气压强、温度,支持
I2C/SPI 接口,兼容 3.3V/5V 电平。尺寸小,低功耗、低噪音,高精度,特别适用于无人机,
精密高度计、环境监测和物联网等应用场景。 
特 点  
⚫ 
⚫ 
⚫ 
支持 I2C/SPI 接口通信,默认为 I2C 接口 
板载电平转换电路,可兼容 3.3V/5V 的工作电平 
提供完善的配套资料手册(Raspberry/Arduino/STM32 示例程序和用户手册等) 
产 品 参 数  
工作电压: 
5V/3.3V 
通信接口: 
I2C/SPI 
气压检测范围: 
300~1250hPa 
气压绝对精度: 
0~100%RH (分辨率 0.008%RH,±3% RH) 
气压相对精度: 
300~1100 hPa (分辨率 0.18Pa,误差±1 hPa) 
温度漂移系数: 
±0.75Pa/K (@700~1100hPa,-20~65℃) 
温度绝对精度: 
±0.5℃ (0~65℃) 
支持分辨率: 
0.016Pa (高精度模式下) 
支持采样率: 
200Hz 
工作温度: 
-40~85℃ 
产品尺寸: 
32mm × 20mm 
过孔直径: 
2.0mm 
  1  /  7 
BMP388 Barometric Pressure Sensor 
   
 
接 口  
功能引脚 
VCC 
GND 
SDA 
SCL 
INT 
用 于 树 莓 派  
描述 
电源正 
电源地 
I2C 数据线 
I2C 时钟线 
中断输出引脚,可接 I/O 口   
需要安装必要的函数库,否则以下的示例程序可能无法正常工作。安装方法详见: 
http://www.waveshare.net/wiki/Pioneer600_Datasheets 
在官网上找到对应产品,在产品资料打开下载路径,在 wiki 中下载示例程序: 
得到解压包,解压得到如下: 
将 Raspberry 文件夹拷至树莓派。 
 
  2  /  7 
 
 
BMP388 Barometric Pressure Sensor 
   
 
前 置 工 作 及 演 示  
前置工作 
执行如下命令进行树莓派配置: 
sudo raspi-config 
选择 Interfacing Options    ->    I2C    ->    yes  启动 I2C 内核驱动 
保存退出后,重启树莓派: 
sudo reboot 
将模块按照如下方式接到树莓派 
模块 
VCC 
GND 
SDA 
SCL 
INT 
树莓派 
3.3V 
GND 
SDA 
SCL 
不接 
PYTHON  例程演示 
成功将 BMP388 模块连接至树莓派后,  安装 smbus 库 
sudo apt install python-smbus 
进入到 python 目录下并运行程序 
运行: 
sudo python bmp388Demo.py 
将显示如下数据: 
  3  /  7 
BMP388 Barometric Pressure Sensor 
   
 
 
从左至右分别显示了 BMP388 测得的温度(摄氏度),大气压(百帕斯卡),相对高度。 
若未成功显示数据,或数据显示不正常请检查连线,通信方式,以及器件地址是否有误。 
WIRINGPI 例程演示 
安装 wiringpi 库 
sudo apt install wiringpi 
进入到 wiringpi 目录下编译并运行程序 
运行程序: 
make 
sudo ./bmp388Demo 
将显示如下数据: 
  4  /  7 
BMP388 Barometric Pressure Sensor 
   
 
等待一会可以得到稳定的数据。从左至右分别显示了 BME280 测得的大气压(百帕斯卡),相对
 
高度,温度(摄氏度)。 
用 于 ARDUINO 
按照如下方式将模块接到 arduino 开发板中。 
模块 
VCC 
GND 
SDA 
SCL 
INT 
  5  /  7 
Arduino 
5V 
GND 
SDA 
SCL 
不接 
BMP388 Barometric Pressure Sensor 
   
在正确接线,确定通信方式以及器件地址之后,编译,下载到 Arduino 
打开:工具  ->  串口监视器,选择波特率为 115200,可得如下信息 
 
 
 
等待一会可以得到稳定的数据。其中从左至右分别显示了 BMP388 传感器测得的大气压(百帕
斯卡),相对高度(m),温度(摄氏度)。若未成功显示数据,或数据显示不正常请检查连线,通
信方式,以及器件地址是否有误。 
用 于 STM32 
将下载的示例程序的压缩包解压后,打开 STM32 文件夹下的 STM32-
STM32_BME280->USR 路径下的工程文件: 
本程序采用的芯片是 STM32F103VET6,按照如下方式将模块接到 stm32 开发板。 
模块 
VCC 
GND 
SDA 
  6  /  7 
STM32 
5V 
GND 
PB7 
BMP388 Barometric Pressure Sensor 
   
SCL 
INT 
PB6 
不接 
编译,下载,本次采用的芯片是 STM32F103RBT6,采用 USART2 输出获得的传感器数据。 
打开串口调试助手,选择对应的 COM 口,设置波特率为 115200,数据位 8 位,停止位 1
位,无奇偶校验位,可得如下数据: 
 
 
 
等待一会可以得到稳定的数据。其中从左至右分别显示了 BMP388 传感器测得的大气压(百帕
斯卡),相对高度(m),温度(摄氏度)。若未成功显示数据,或数据显示不正常请检查连线,通
信方式,以及器件地址是否有误 
  7  /  7