我正在尝试从MAX30101 高灵敏度脉搏血氧计和心率传感器计算心率和外周毛细血管氧饱和度 (SPO2) 。我知道当我处于 HR 模式时,我的样本有 3 个字节,而当我处于 SPO2 模式时,样本有 6 个字节。我不明白获取原始数据后该怎么做。
我知道对于 SpO2,我需要使用比率 R=(ACred/DCred)/(ACir/DCir),然后 SpO2=104-17R(如本数据表所示:https ://pdfserv.maximintegrated.com/ en/an/AN6409.pdf),但我不知道如何获得 AC i DC 组件或如何获得 HR。数据表中没有关于它的任何具体信息。有人可以向我解释一下,或者提供一个例子吗?我只能返回原始数据。
这是我为使用stm32ide读取一个示例而创建的代码的一部分:
void max_readFIFO_one_sample(uint8_t mode)
{
if (mode= hr)
{
ret= HAL_I2C_Master_Transmit(&hi2c1, MAX_ADDRw, 0x05, 1, HAL_MAX_DELAY);
ret= HAL_I2C_Master_Receive(&hi2c1, MAX_ADDRr, temp, 3, HAL_MAX_DELAY);
}
else if (mode == spo2)
{
uint8_t temp[6] = {0};
ret= HAL_I2C_Master_Transmit(&hi2c1, MAX_ADDRw, 0x05, 1, HAL_MAX_DELAY);
ret= HAL_I2C_Master_Receive(&hi2c1, MAX_ADDRr, temp, 6, HAL_MAX_DELAY);
}
}