单片机无线调试-看见心跳-手机显示心率波形

通过STM32单片机和MAX30102心率检测模块,实现无线监测并显示心率波形。文章介绍了硬件连接、MAX30102驱动编写、模拟I2C通信以及手机端的配置,提供完整的程序代码和调试技巧。
摘要由CSDN通过智能技术生成

    这次带来一篇使用手机观察心率波形的教程,这可能是最后一篇 关于蓝牙调试器的“硬核广告” 了,这几天一直做这个真的做的有些反感了,感觉时间被浪费,如果有人能从中受益就好了,但看起来不是所有的付出都有收获。不废话了,先看一下效果吧:

    这次使用的是MAX30102型的心率检测模块,其为光电投射式的,因为血液对特定波长的光有吸收作用,每次心脏泵血时,该波长都会被大量吸收,以此就可以确定心跳。在使用这种模块时,要注意只能使用手指或其他皮肤比较容易透光的部位进行检测。使用手背或者其它部位基本是检测不到的。估计是因为皮肤中的黑色素会吸收大部分的光,而手指部分皮肤黑色素较少,因此会比较明显。

一、单片机端

1.1硬件连接

    MAX30102提供了I2C的接口用于与单片机通信,其作为从设备的地址为0xAE。从图中可以看到其共有八个引脚,其中我们只用了四个,两个用于供电,这个模块可以直接使用3.3V供电。然后SCL和SDA引脚用于I2C通信。

1.2程序编写

完整代码在这里

1.2.1MAX30102驱动

    一开始我使用的是STM32的硬件I2C接口,但是搞了半天,发现STM32的硬件I2C一直卡在BUSY标志,没法正常使用,一直听说STM32的硬件I2C不好用,这次真的是吃了教训了。没有办法,又重新写了一个使用IO口来模拟I2C的程序 fake_i2c,fake_i2c的初始化有些不同,下面程序中init_fake_i2c(1,2,MAX30102_ADD,1)的参数 1,2,MAX30102_ADD,1  其中“1”的含义是I2C通信时钟周期系数,该数越小,则通信速率越高,MAX30102最高支持400kHz的通信频率,数据传输还是挺快的。其中的“2”的含义是等待Ac

  • 17
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值