1

nrf52832 SoC と MAX30102 心拍センサー間の I2C 通信を使用してファームウェアを作成するのに忙しいです。次のように、MAX30102 のレジスタにデータを書き込む関数で忙しいです。

uint32_t twi_write_buf(uint8_t addr, uint8_t regAddr, uint8_t *dataOut, uint8_t length)
{
  uint8_t buff[255];
  buff[0] = regAddr;
  memcpy(&buff[1], dataOut, length);

  return nrf_drv_twi_tx(&m_nrf_drv_twi, addr, (const uint8_t *) buff, length + 1, false);
}

次に、パラメーターと共に関数を呼び出します。

twi_write_buf(MAX30102, INT_ENABLE_1, 0xCO, ? );

関数のパラメーターを理解するために、サンプル コードを使用しました。

  • MAX30102 = 0x57(センサーアドレス)
  • INT_ENABLE_1 = 0X02 (レジスタアドレス)
  • 0XCO (データシートを読んだときに、このパラメータがどこから来ているのか判断できません)
  • このデータ バッファーの長さを判断するのに苦労しています。

以下に、MAX30102 のデータシートのスクリーンショットを添付しました。データ バッファの長さと、この 0xC0 データがどこから来たのかを判断する方法を教えてください。ありがとうございました

MAX30102のレジスタマップ

4

0 に答える 0