这几天用蓝牙芯片NRF52832试着调了一下心率血氧模块MAX30102,首先来看一下MAX30102的引脚图。
引脚图中可以看到,这款芯片只能采用I2C进行通信,一般的MAX30102模块都会把SCL、SDA自动上拉以确保I2C总线的起始状态,在实验中只需要用到VCC,GND,INT,SCL,SDA。引脚分配的话自己分配即可,INT低电平有效,所有要设置为输入上拉。
阅读MAX30102的官方Datasheet可以发现I2C写地址和读地址分别为0xAE和0xAF,再把其他寄存器摘录下来,寄存器主要有以下:
#ifndef MAX30102_H__
#define MAX30102_H__
#include "nrf_delay.h"
//I2C引脚定义
#define TWI_SCL_MAX 25 //I2C SCL引脚
#define TWI_SDA_MAX 27 //I2C SDA引脚
#define MAX30102_ADDRESS_LEN 1
#define I2C_WRITE_ADDR (0xAE>>1)
#define I2C_READ_ADD