主要参考模块说明书

写在前面的话

  1. 硬件原理我是真的搞不明白,所以心率血氧传感器数据检测就是模块卖家自带的代码。。。
  2. 我使用HXDZ-30102-ACC传感器也是偶然在网上检索到的,集成心率血氧和三轴加速度一起的,当时想法就是图简单,没想到卖家没实现三轴加速度的代码,因此我只用到了心率血氧传感器。建议不要用这个,直接使用MAX30102就能够实现功能(关键是便宜)。

主要参考资料HXDZ-30102-ACC使用说明书V3.2(模块卖家提供资料包中有)

说明书中的原理介绍

首先连接开发板的COM端口,波特率设置为115200,无奇偶校验位。上电后,单片机复位MX30102并开始对MAX30102进行功能初始化,此时RED LED和IR LED交替点亮来检测人体皮肤不血液的搏动和血氧含量(此时可以看到MAX30102有红光亮起,说明初始化成功) 。单片机将一段时间内MAX30102采集的LED反射数据储存在内部RAM中,然后分别计算RED LED和IR LED的直流成分(DC)和交流成分(AC) ,最后算出数值R并通过预先储存在FLASH中的查找表来确定当前的SP02,而心率值可以通过对单个LED的交流成分相邻两波峰之间的时间差T来确定,每分钟心跳数BPM=60/T。

与STM32连接

本次使用STM32F103C8T6最小系统板

  1. 连接传感器和STM32。STM32与传感器对应关系为。
  2. 将代码烧写进STM32(说明书附录1中提供了ISP下载方法)。检测血氧心率的程序位于(HXDZ-30102-ACC加密资料\下位机程序\STM32代码\MAX30102\stm32f103c8t6max30102.rar)
  3. 连接STM32与USB转TTL(买物联卡送的,合宙物联卡活动1元包年,每月30M)
  4. 随便打开一个串口调试工具,波特率115200即可看到传感器数据

    其中red和ir是红光LED,红外LED的原始数据, HR表示心率值, HRvalid是心率是否有效标识, SP02是血氧数值, SPo2valid是血氧是否有效标识。

最新文章

  1. 分布式session的实现
  2. vim 使用
  3. iOS-数据持久化-第三方框架FMDB的使用
  4. LocalDB:微软的新生代轻量级数据库
  5. 软件工程(C编码实践篇)课程总结
  6. SQL语句的添加、删除、修改多种方法
  7. netty定时器HashedWheelTimer(zz)
  8. 自定义FragmentTabHost--实现View重复加载问题
  9. Angular 1.2.27在IE7下的兼容问题
  10. jquery 日期控件
  11. JVMInternals--reference
  12. 多维数组遍历PHP
  13. 整理php操作memcache缓存为基础的方法
  14. 性能更好的js动画实现方式---requestAnimationFrame
  15. Golang 网络爬虫框架gocolly/colly 一
  16. flutter Dynamic updates 热更新 版本更新
  17. 编程菜鸟的日记-初学尝试编程-编写函数实现strcmp功能
  18. linux常见系统调用函数列表
  19. attachEvent方法绑定事件
  20. e785. 监听JList中项的变动

热门文章

  1. 一行代码打印python之禅
  2. 在SublimeText3中搭建Verilog开发环境记录(二)
  3. 【剑指offer】77.调整数组顺序使奇数位于偶数前面
  4. vue-cli 3.0脚手架创建vue项目
  5. Cesium产品体系
  6. 微信机器人项目开发--python
  7. Python基础之用tkinter写界面
  8. C#.NET 国密SM3withSM2签名与验签 和JAVA互通
  9. layui 页面加载完成后ajax重新为 html 赋值 遇到的坑
  10. Sunset靶机