Вот смотрите, толи я ошибаюсь толи хз. У них в драйвере даже длина не совпадает, тут 32 бита typedef BME280_INTF_RET_TYPE (*bme280_read_fptr_t)(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
а функция которая дергает имеет длину 16 бит int8_t bme280_get_regs(uint8_t reg_addr, uint8_t *reg_data, uint16_t len, struct bme280_dev *dev)
Так там в функции же есть параметр len, который определяет сколько байт тащить