当前位置:网站首页 > 编程语言 > 正文

max30102使用(max30102使用方法)



几个关键寄配置如下

Interrupt Enable

就是一些中断的使能,这里我们只使能A_FULL: FIFO Almost Full Flag这个中断,也就是当FIFO要满的时候产生中断(INT引脚拉低),(注:FIFO深度32,FIFO要满的标准可以设定(通过FIFO Configuration设置),比如20,当FIFO中有20个数据时,产生中断,这时候去读FIFO中的数据)。

在这里插入图片描述

FIFO Configuration

其中B7-B5设置采样均值(多个采样点求均值输出一个值),B4表示FIFO满之后是否继续写入,B3-B0就是设置Almost Full 的,比如0x00就是FIFO中有32个样本时产生INT中断。
在这里插入图片描述
在这里插入图片描述

Mode Configuration

模式设置(B2-B0), 0x02表示HR模式,0x03表示SpO2模式。
在这里插入图片描述

SpO2 Configuration

这里主要配置采样率,0x17为1000Hz,还得注意对照数据手册,HR和SpO2模式,LED脉宽,都对采样率有限制,具体参考数据手册。
在这里插入图片描述

使用MAX30102采集数据时,设置SpO2模式,FIFO Almost Full = 20(也用过32),采样率1000,每次中断读一次FIFO(读完),实际采样时,两次INT时间间隔大于20ms,采6000个样本时间大于6s,大概在8s左右,与预想不符合。猜想在FIFO读的时候,未向FIFO写数据,有数据丢失。

配置

 

问题描述

使用MAX30102的"FIFO Almost Full Flag"中断来读数据,在HR Mode下,当FIFO快满时产生INT中断,然后一次性读出FIFO数据,按照预想,两次中断时间间隔应该等于采样周期*FIFO快满的个数。例如:FIFO快满设置为20,采样率1000,则两个中断之间时间间隔为20ms,但是实际情况不是这样。
实际运行中,两个INT时间间隔为23ms,而从FIFO被读出开始计算,则刚好20ms,如图,难道在FIFO读取期间,没有数据写入FIFO ?
在这里插入图片描述

配置

 

而采用SPO_2模式就没有出现这种问题,如下图,在采样率1000,FIFO ALMOST FULL为32时,INT间隔恰好为32ms。
在这里插入图片描述

因为前期调试一直使用HR模式,然后数据手册中的关于FIFO的描述,HR Mode 和 SpO2 Mode,在使用FIFO的描述上,不知道为什么会出现这种情况,看数据手册,两个模式INT和应该是一样的呀。先这样吧呜呜呜。另外,附上部分代码。

使用FreeRTOS,在INT中断服务函数给采集任务抛出事件,任务开始采集

INT中断服务函数

 

采集任务

到此这篇max30102使用(max30102使用方法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 
推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • 蓝牙耳机断开连接后还费电吗(蓝牙耳机断开连接后会自动关机吗)2025-04-21 22:45:06
  • vs怎么读(淄怎么读)2025-04-21 22:45:06
  • 体育游戏的分类一般选择(体育游戏分为哪些类型)2025-04-21 22:45:06
  • 国内github访问不了吗(github国内访问慢)2025-04-21 22:45:06
  • ip返查域名网站(ip反查域名解析)2025-04-21 22:45:06
  • 修复edge浏览器(修复edge浏览器有什么作用)2025-04-21 22:45:06
  • gikj是什么意思(gikn什么意思)2025-04-21 22:45:06
  • vbf文件(vbf文件是什么)2025-04-21 22:45:06
  • st7735s各个引脚说明(st7565引脚)2025-04-21 22:45:06
  • 本机未安装lodop打印控件(本机没有安装lodop打印控件)2025-04-21 22:45:06
  • 全屏图片