Как определить длину буфера данных по карте регистров датчика - PullRequest
1 голос
/ 24 февраля 2020

Я занят написанием прошивки, используя I2 C связь между nrf52832 So C и датчиком сердечного ритма MAX30102. Я занят функцией, которая записывает данные в регистр 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

...