从网上掏了ADXL345模块,与单片机连接,用单片机I/O模拟4线制SPI,读取加速度值。
设置测量范围16g,数据又对齐,DATAREADY中断,程序调试后,正确地读到芯片的ID值0xe5,并且通过对xyz偏移寄存器的写读操作,证明对345的读写程序完全正常,但是读到的三轴加速度数据却不正确。
通过对读到的数据进行分析,发现一个有趣的现象:如果把 DATAx0(0x32)、 DATAx1(0x33)、DATAy0(0x34)、 DATAy1(0x35)、DATAz0(0x36)、 DATAz1(0x37)的顺序颠倒一下,即把寄存器0x37当做 DATAx0,0x36当做DATAX1......0X32当做DATAz1,三轴加速度就对了,这时为什么呀?!! |