BMA280是一款三轴加速度传感器,支持SPI及I2C访问,支持水平,静止,慢速,快速运动中断反馈,但是我们一般都是采集xyz三轴数据,然后自己做算法处理。
配置比较简单,只需要配置带宽寄存器即输出频率(0x10)及加速度范围寄存器(0x0F)即可。
以SPI为例,首先读取芯片ID寄存器(0x00),如果读取的ID为0xFB,则正确。
然后初始化带宽寄存器及加速度范围寄存器:
spi_write(0x10, 0x08, 1); //设置带宽为7.81Hz
spi_write(0x0F, 0x03,1); //设置加速度范围为+-2G,因为BMA280加速度数据为14bits,所以范围为+-8192左右,也就是1G的范围为+-4096左右,如果芯片水平放置,则z轴的采样值应该为4096左右。
spi_read(0x02, buff, 6); //x轴数据低位和高位寄存器分别为0x02,0x03,接下来是y轴数据寄存器和z轴数据寄存器,所以这里直接读取6个字节。
处理时要注意负号:
x=(int16)((((int32_t)((int8_t)buff[1]))<<8)|(buff[0]&0xFC));
x=x>>2;
同理y轴和z轴。