# 硬件模块包管理器:uart006读取BMP390压强 **Repository Path**: zhiOS/uart006 ## Basic Information - **Project Name**: 硬件模块包管理器:uart006读取BMP390压强 - **Description**: 创建stm32f103工程,使用PB6-SCL,PB7-SDA读取BMP390芯片压强信息; - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-26 - **Last Updated**: 2026-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BMP3XX 气压传感器驱动 基于 STM32F103 的 BMP390 气压传感器驱动项目,支持 I2C 和 SPI 两种通信接口。 ## 项目简介 本项目实现了 Bosch BMP390 数字气压传感器的驱动程序,运行在 STM32F103 微控制器上。BMP390 是一款高精度、低功耗的数字气压传感器,广泛应用于无人机高度控制、气象站、室内导航等领域。 ## 硬件要求 - **MCU**: STM32F103XB (ARM Cortex-M3) - **传感器**: BMP390 - **通信接口**: I2C 或 SPI (可通过代码选择) ## 功能特性 - 支持 I2C 和 SPI 两种通信接口 - 读取气压和温度数据 - 支持 FIFO 数据缓冲区 - 可配置采样率 (ODR) 和滤波器设置 - 支持中断和功耗控制 ## 项目结构 ``` ├── Core/ │ ├── Inc/ # 头文件 │ │ ├── bmp3.h # BMP3 驱动头文件 │ │ ├── bmp3_defs.h # BMP3 定义 │ │ └── main.h # 主程序头文件 │ └── Src/ # 源代码 │ ├── bmp3.c # BMP3 驱动实现 │ ├── common.c # 通信接口 (I2C/SPI) │ └── main.c # 主程序 ├── Drivers/ # STM32 HAL 驱动库 └── MDK-ARM/ # Keil MDK 工程文件 ``` ## 快速开始 ### 1. 硬件连接 **I2C 接口:** - I2C1_SCL -> PB6 - I2C1_SDA -> PB7 ![输入图片说明](https://foruda.gitee.com/images/1723856164656695618/ea26311a_8718294.png "级联原理图.png") **SPI 接口:** - SPI1_SCK -> PA5 - SPI1_MISO -> PA6 - SPI1_MOSI -> PA7 ### 2. 编译与下载 使用 Keil MDK 打开 `MDK-ARM/BMP3XX.uvprojx` 工程文件,编译并下载到开发板。 ### 3. 使用示例 ```c // 初始化 BMP390 struct bmp3_dev bmp3; bmp3_interface_init(&bmp3, BMP3_I2C_INTF); // 或 BMP3_SPI_INTF bmp3_init(&bmp3); // 读取传感器数据 struct bmp3_data comp_data; bmp3_get_sensor_data(BMP3_PRESS | BMP3_TEMP, &comp_data, &bmp3); // 输出结果 printf("Pressure: %.2f Pa\r\n", comp_data.pressure); printf("Temperature: %.2f C\r\n", comp_data.temperature); ``` ## API 参考 ### 初始化 - `bmp3_init()` - 初始化 BMP390 传感器 - `bmp3_interface_init()` - 初始化通信接口 ### 数据读取 - `bmp3_get_sensor_data()` - 获取补偿后的气压和温度数据 - `bmp3_get_fifo_data()` - 从 FIFO 缓冲区读取数据 ### 配置 - `bmp3_set_sensor_settings()` - 配置传感器参数 - `bmp3_set_op_mode()` - 设置工作模式 (睡眠/强制/正常) ## 注意事项 1. 确保 BMP390 的电源电压为 1.65V~3.6V 2. I2C 地址默认为 0x76 或 0x77 (可通过 SDO 引脚选择) 3. 首次使用需进行校准数据读取 4. 建议根据应用场景合理配置 ODR 和过采样率以平衡功耗和精度 ## 许可证 本项目仅供学习和研究使用。