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