Hello rey-a,
If you are using i2c, you should put dev id in interface as below.
i2c_bus = BMI2_I2C_PRIM_ADDR; bmi2.intf_ptr = &i2c_bus; bmi2.intf = BMI2_I2C_INTF; bmi2.read = bmi2xy_hal_i2c_bus_read; bmi2.write = bmi2xy_hal_i2c_bus_write;
/*! This API is used to perform I2C read operation with sensor */ int8_t bmi2xy_hal_i2c_bus_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t length, void *intf_ptr) { int8_t rslt = 0; //uint8_t dev_id = 0x68; uint8_t* dev_id = (uint8_t *)intf_ptr;
rslt = BMI270_read_i2c(*dev_id, reg_addr, reg_data, length);
return rslt; }
/*! This API is used to perform I2C write operations with sensor */ int8_t bmi2xy_hal_i2c_bus_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t length, void *intf_ptr) { int8_t rslt = 0; // uint8_t dev_id = 0x68;
uint8_t* dev_id = (uint8_t *)intf_ptr; rslt = BMI270_write_i2c(*dev_id, reg_addr, (uint8_t *)reg_data, length);
return rslt; }
If you are using spi and doesn't use several slave, but only bmi270, you don't need to use it. ( It's for chip selection )
But, anyway you need to put it as below.
#define BMI260_CS 10 spi_bus = BMI260_CS;
bmi2.intf_ptr = &spi_bus; bmi2.intf = BMI2_SPI_INTF; bmi2.read = BMI270_read_spi; bmi2.write = BMI270_write_spi;
Thanks,
... View more