MAX30101 High-Sensitivity Pulse Oximeter and Heart-Rate Sensorから心拍数と末梢毛細血管酸素飽和度 (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を使用して 1 つのサンプルを読み取るために作成したコードの一部を次に示します。
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);
}
}