Я хотел бы уточнить, правильно ли я использую указатель для записи данных в регистр моего датчика через I2 C. Встроенный C - PullRequest
0 голосов
/ 31 марта 2020

У меня есть функция I2 C, которая записывает данные в мой датчик следующим образом:

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);
}

Теперь я хотел бы настроить свой датчик и записать значение в один из регистров. Я установил переменную full_en = 0xC0 со значением i wi sh для отправки на датчик. Затем я ссылался на переменную full_en как указатель с помощью &, потому что мой параметр в функции записи I2 C имеет в качестве параметра оператор разыменования * *dataOut.

void MAX30102_setup (void)
{
    uint8_t full_en = 0xC0;

    rb_twi_write_buf(MAX30102_ADDRESS, INT_ENABLE_1, &full_en, sizeof(full_en));
}

Я хотел бы уточнить, что регистру моего датчика будет отправлено значение 0xC0, и если я правильно обработал параметр указателя *dataOut? Наконец, при записи в регистры .... какова важность использования указателей?

Спасибо, любая помощь будет принята с благодарностью.

...