My implementation of Bosh BMI160 Only I2C is tested so far.
Dependents: test_BMI160 TFT_test_MAX32630FTHR
BMI160.h
- Committer:
- Rhyme
- Date:
- 2017-08-25
- Revision:
- 0:9aed6f5a35c0
- Child:
- 1:d56df81c389b
File content as of revision 0:9aed6f5a35c0:
#ifndef _BMI160_H_ #define _BMI160_H_ class BMI160 { public: /** * BMI160 I2C Interface * * @param sda SDA pin * @param scl SCL pin * @param addr address of the I2C peripheral */ BMI160(PinName sda, PinName scl, int addr) ; /** * BMI160 SPI Interface * * @param sck SPI SCKL pin * @param miso SPI Master In Slave Out pin * @param mosi SPI Master Out Slave In pin * @param cs SPI Chip Select pin */ BMI160(PinName sck, PinName miso, PinName mosi, PinName cs) ; /** * BMI160 destructor */ ~BMI160() ; uint8_t getChipID(void) ; private: SPI *m_spi ; I2C *m_i2c ; DigitalOut *m_cs ; int m_addr ; void init(void) ; void i2c_readRegs(int addr, uint8_t *data, int len) ; void i2c_writeRegs(uint8_t *data, int len) ; void spi_readRegs(int addr, uint8_t *data, int len) ; void spi_writeRegs(uint8_t *data, int len) ; void readRegs(int addr, uint8_t *data, int len) ; void writeRegs(uint8_t *data, int len) ; } ; #endif /* _BMI160_H_ */