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

重点在于另外三类寄存器。
STATUS寄存器
其中,STATUS寄存器有两个,一个是中断状态寄存器,一个是中断使能寄存器。

FIFO寄存器
数据存储在FIFO_DATA寄存器,我们主要去读取他就可以了。其余三个是溢出次数以及读写指针。
DATA存的数据是每次读到的ADC值。每一次会读四次,依次是IR的高低数据、RED的高低数据。

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

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

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

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

实验目的:
Max30100模块使用

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

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

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

基于STM32F103的Max30100心率、血氧检测代码(转载)的更多相关文章

  1. (四)HXDZ-30102-ACC检测心率血氧数据并通过串口助手显示

    主要参考模块说明书 写在前面的话 硬件原理我是真的搞不明白,所以心率血氧传感器数据检测就是模块卖家自带的代码... 我使用HXDZ-30102-ACC传感器也是偶然在网上检索到的,集成心率血氧和三轴加 ...

  2. STM32+Air202+Air530+HXDZ-30102-ACC心率血氧GPS采集上传到阿里云

    所有资料都在QQ群1121445919 主要功能 HXDZ-30102-ACC采集心率血氧数据 STM32通过串口将数据转发到air202模块 air202将数据上传到阿里云平台进行展示与处理 整合合 ...

  3. 关于MAX30100心率的编程

    MAX30100是能够读取心率.血氧的传感器,通信方式是通过IIC进行通信. 其工作原理是通过红外led灯照射,能够得到心率的ADC值. 图为MAX30100的寄存器. 可以分为五类,状态寄存器.FI ...

  4. 基于Python实现的死链接自动化检测工具

    基于Python实现的死链接自动化检测工具   by:授客 QQ:1033553122 测试环境: win7 python 3.3.2 chardet 2.3.0 脚本作用: 检测系统中访问异常(请求 ...

  5. 基于链表的C语言堆内存检测

    说明 本文基于链表实现C语言堆内存的检测机制,可检测内存泄露.越界和重复释放等操作问题. 本文仅提供即视代码层面的检测机制,不考虑编译链接级的注入或钩子.此外,该机制暂未考虑并发保护. 相关性文章参见 ...

  6. AIOps探索:基于VAE模型的周期性KPI异常检测方法——VAE异常检测

    AIOps探索:基于VAE模型的周期性KPI异常检测方法 from:jinjinlin.com   作者:林锦进 前言 在智能运维领域中,由于缺少异常样本,有监督方法的使用场景受限.因此,如何利用无监 ...

  7. 伪基站,卒于5G——本质上是基于网络和UE辅助的伪基站检测,就是将相邻基站的CI、信号强度等信息通过测量报告上报给网络,网络结合网络拓扑、配置信息等相关数据,对所有数据进行综合分析,确认在某个区域中是否存在伪基站

    伪基站,卒于5G from:https://www.huxiu.com/article/251252.html?h_s=h8 2018-07-05 21:58收藏27评论6社交通讯     本文来自微 ...

  8. 基于Haar特征的Adaboost级联人脸检测分类器

    基于Haar特征的Adaboost级联人脸检测分类器基于Haar特征的Adaboost级联人脸检测分类器,简称haar分类器.通过这个算法的名字,我们可以看到这个算法其实包含了几个关键点:Haar特征 ...

  9. 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)

    基于深度学习的安卓恶意应用检测 from:http://www.xml-data.org/JSJYY/2017-6-1650.htm 苏志达, 祝跃飞, 刘龙     摘要: 针对传统安卓恶意程序检测 ...

随机推荐

  1. Siebel学习笔记

    Siebel(escript)的学习:1.Siebel的数据类型 Primitive(原始的)---Number,Integer,Hexadecimal(十六进制),Octal(八进制),Floati ...

  2. hadoop使用

    hadoop@ubuntu:~$ cd hadoop-2.0.5-alpha/ hadoop@ubuntu:~/hadoop-2.0.5-alpha$ ls hadoop@ubuntu:~/hadoo ...

  3. HTTP协议安全头部X-Content-Type-Options引入的问题

    前段时间测试MM反馈了一个问题,在富文本编辑器里上传的图片无法正常呈现.因为Jackie在本机的环境上没有观察类似的现象,而恰好那天测试环境的某个重要配项被改错了,于是Jackie想当然的归类为配置项 ...

  4. Nginx+Tomcat在Windows下做负载均衡

    一. 为什么需要对Tomcat服务器做负载均衡 Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果有超过500的并发数便会出现Tomcat不能响应新的请求的情况,严重影响网站的 ...

  5. 通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩

    kubectl scale命令用于程序在负载加重或缩小时进行pod扩容或缩小,我们通过一些实际例子来观察scale命令到底能达到什么效果. 命令行创建一个deployment: kubectl run ...

  6. 如何处理错误信息 Pricing procedure could not be determined

    当给一个SAP CRM Quotation文档的行项目维护一个产品时,遇到如下错误信息:Pricing procedure could not be determined 通过调试得知错误消息在fun ...

  7. [19/03/22-星期五] 异常(Exception)(二)_捕获异常

    一.概念 捕获异常是通过3个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它, 最后一步是通过f ...

  8. 2018.11.4 Hibernate中一对、多对多的关系

    简单总结一下 多表关系 一对多/多对一 O 对象 一的一方使用集合. 多的一方直接引用一的一方. R 关系型数据库 多的一方使用外键引用一的一方主键. M 映射文件 一: 多: 操作: 操作管理级别属 ...

  9. Very Deep Convolutional Networks for Large-scale Image Recognition(vggnet)

    vggNet是从AlexNet而来,主要探索卷积神经网络的深度与性能之间的关系,通过反复堆叠3x3的卷积核(c中有1x1的卷积核,也只有c中有,c是16层)和2x2的最大池化层,vggNet构筑了16 ...

  10. Git免密码提交

    下面说一下https克隆的方式免密码提交 在我们下载链接前面加上账号:密码@即可 方式一: 使用https的方式克隆代码 git clone '地址' 查看项目中的配置文件 vim .git/conf ...