max30102心率血氧传感器四针oled屏幕接线图
时间: 2025-04-04 20:06:00 浏览: 88
### MAX30102 心率血氧传感器与 OLED 屏幕的连接方式
MAX30102 是一款高精度的心率和血氧饱和度检测模块,通常通过 I2C 协议与其他设备通信。而 0.96 寸 OLED 显示屏也支持 I2C 接口,因此两者可以共享同一组 I2C 总线进行通信。
以下是 MAX30102 和 OLED 的典型四针接线方法:
#### 硬件连接说明
| **信号名称** | **MAX30102 引脚** | **OLED 引脚** | **功能描述** |
|--------------|---------------------|----------------|---------------|
| GND | GND | GND | 地线 |
| VCC | VIN | VCC | 电源正极 |
| SDA | SDA | SDA | 数据线 |
| SCL | SCL | SCL | 时钟线 |
这种接法利用了 I2C 的特性,即多个设备可以通过相同的 SDA 和 SCL 线实现多路通信[^1]。需要注意的是,在实际应用中可能需要调整 MAX30102 或 OLED 的 I2C 地址以避免冲突。一般情况下,默认地址分别为:
- MAX30102 默认地址:`0x57`
- OLED 默认地址:`0x3C`
如果两个设备默认地址相同,则需修改其中一个设备的地址设置。
#### 示例代码展示
以下是一个简单的 STM32 初始化程序片段,用于配置 I2C 并读取 MAX30102 数据并显示在 OLED 上:
```c
#include "stm32f1xx_hal.h"
#include "ssd1306.h"
// 定义I2C句柄
I2C_HandleTypeDef hi2c1;
void MX_I2C1_Init(void) {
hi2c1.Instance = I2C1;
hi2c1.Init.ClockSpeed = 100000; // 设置标准模式下的波特率为100kHz
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
HAL_I2C_Init(&hi2c1);
}
int main() {
uint8_t buffer[10];
// 初始化硬件
MX_I2C1_Init();
SSD1306_Init(); // 初始化OLED
while (1) {
// 假设从MAX30102获取数据存储到buffer数组中
HAL_I2C_Master_Receive(&hi2c1, 0x57 << 1, buffer, sizeof(buffer), HAL_MAX_DELAY);
// 将数据显示到OLED屏幕上
SSD1306_GotoXY(0, 0); // 移动光标位置
SSD1306_Puts("Heart Rate:", &Font_7x10, White);
SSD1306_GotoXY(0, 15);
char str[20];
sprintf(str, "%u bpm", *(uint16_t*)buffer); // 转换为字符串形式
SSD1306_Puts(str, &Font_7x10, White);
SSD1306_UpdateScreen(); // 刷新屏幕
HAL_Delay(1000); // 每秒更新一次
}
}
```
上述代码展示了如何初始化 I2C 设备以及如何将 MAX30102 获取的数据打印至 OLED 屏幕上[^2]。
---
###
阅读全文
相关推荐


















