Я пытаюсь рассчитать частоту сердечных сокращений и насыщение периферического капиллярного кислорода (SPO2) с помощью высокочувствительного пульсоксиметра и датчика сердечного ритма MAX30101 . Я понимаю, что когда я нахожусь в режиме HR, мой образец имеет 3 байта, а когда я нахожусь в режиме SPO2, образец имеет 6 байтов. Я не понимаю, что делать после получения необработанных данных.
Я знаю, что для SpO2 мне нужно использовать соотношение R = (ACred / DCred) / (ACir / DCir), и после этого SpO2 = 104-17R (как показано в этой таблице : https://pdfserv.maximintegrated.com/en/an/AN6409.pdf), но я не знаю, как получить компоненты A C i D C или как получить HR. Никаких специфических c сведений об этом нет в таблице. Может кто-нибудь объяснить это мне или привести пример? Я могу вернуть только необработанные данные.
Вот часть кода, который я создал для чтения одного образца с использованием 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);
}
}