MAX30100是能够读取心率、血氧的传感器,通信方式是通过IIC进行通信。其工作原理是通过红外led灯照射,能够得到心率的ADC值。
       MAX30100的寄存器可以分为五类,状态寄存器、FIFO、控制寄存器、温度寄存器、ID寄存器。温度寄存器是读取芯片的温度值,以矫正因为温度而产生的偏差。ID寄存器是读取芯片的ID号。
基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

重点在于另外三类寄存器。
STATUS寄存器
其中,STATUS寄存器有两个,一个是中断状态寄存器,一个是中断使能寄存器。
基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

FIFO寄存器
数据存储在FIFO_DATA寄存器,我们主要去读取他就可以了。其余三个是溢出次数以及读写指针。
DATA存的数据是每次读到的ADC值。每一次会读四次,依次是IR的高低数据、RED的高低数据。
基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

Configured寄存器
Mode寄存器中 SHDN是低功耗控制位、RESET是复位、TEMP_EN是温度检测使能,MODE是模式选择。
SPO2设置寄存器 主要是设置血氧浓度相关的参数的,以及LED_PW的功率。
LED寄存器是设置两颗灯的脉冲时间。
基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

MAX30100是一种非侵入式集成的脉搏血氧饱和度和心脏速率监视传感器的解决方案。

基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

它结合了两个发光二极管,一个光检测器,优化光学和低噪声的仿真信号处理,以检测脉搏血氧饱和度和心脏速率信号。
只需要将手指头紧贴在传感器上,就能估计 脉搏血氧饱和度(SpO2)及脉搏(相当于心跳)。
携带氧气的红血球能吸收较多红外光(850-1000nm),未携带氧气的红血球则是吸收较多的红光(600-750nm),
因此pulse oximeter就是一个迷你的分光计,利用不同红血球之吸收光谱的原理,来分析血氧饱和度。
这种实时而快速的测量方式,也广泛被运用在许多临床的参考。

基于STM32F103的Max30100心率、血氧检测代码(转载)-LMLPHP

实验器材:
正点原子精英STM32F103开发板

实验目的:
Max30100模块使用

硬件资源:
1,SCL接PB6
2,SDA接PB7

实验现象:
在串口打印心率与血氧数据,数据间隔较长,是因为需要在STM32进行复杂运算

转载自:https://blog.csdn.net/tichimi3375/article/details/79680431

05-11 22:16