买了个ADXL345的模块,得到的资料太LOW. 看数据手册 ,应该有校验和FIFO 的操作啊,而且采集太慢。
用卖模块的程序,也就是能读出来数据,数据跳动还很大。
官网: https://www.analog.com/cn/products/adxl345.html#product-documentation
看了官网资料,实在没有必须写博客。该说的都说了。
以下只是个人的理解
char ADXL345_Init(char I2C_protocal);
void ADXL345_SetRegisterValue(unsigned char registerAddress, unsigned char registerValue);
unsigned char ADXL345_GetRegisterValue(unsigned char registerAddress);
void ADXL345_GetGxyz(float* x, float* y, float* z);
void ADXL345_SetOffset(unsigned char xOffset, unsigned char yOffset, unsigned char zOffset)
ADXL345 可以用SPI 和I2C 通讯,我要用I2C.
char ADXL345_Init(char I2C_protocal)
{
IIC_Init(); //底层设置
ADXL345_SetRegisterValue(DATA_FORMAT,0x0B); //测量范围+-16G.
//D7, SELF_TEST 0---禁用自测力
//D6, SPI, 1---3线SPI模式;0--4线
//D5 ,INT_INVERT ,0 ---设置中断至高电平有效。0---低电平有效
//D4, NO USE
//D3 ,FULL_RES,1--全分辨率模式。 0--10位模式。
//D2,Justify,对齐位。 1 ---选择左对齐。
//D1,D0 ---g 范围
0,0 +-2g
0,1 +-4g
1,1 +-8g
1,1 +-16g
ADXL345_SetRegisterValue(BW_RATE,0x0F); //示例中选择的速度太慢
//D4, LOW_POWER,0 ---正常操作,1 ---低功率操作。
//D3,D2,D1,D0 速率位,选择期间带宽和输出数据速率。
1,1,1,1 输出速率3200HZ, 带宽1600HZ
ADXL345_SetRegisterValue(POWER_CTL,0x08); // 测量
//D4,Measure,
ADXL345_SetRegisterValue(INT_ENABLE,0x80); // 中断使能寄存器,使能数据好中断
// D7,DATA_READY,--------------数据OK
//D6, SINGLE_TAP --------单击
//D5,DOUBLE_TAP -----双击
//D4,Activity ------------活动
//D3,Inactivity ----------静止
//D2, FREE_FALL -----自由落体
//D1,Watermark\ ----水印 ,不明白什么意思
//D0,Overrun ---- 溢出, 也不明白应该场合。
ADXL345_SetRegisterValue(INT_MAP,0B0111111); //DATA_READY中断发到INT1
ADXL345_SetRegisterValue(FIFO_CTL,0B11 1 0 0 111 );
//D7,D6
0,0 -----Bypass
0,1 --FIFO
1,0 ---stream
1,1 -- Trigger
//D5 --Trigger Bit 1---触发位的中断去INT2
//D4,D3,D2,D1,D0 Samples bit
00111 ---------设定16个吧。 有8个数据后,触发中断。 一次读出8个数据,平均一下。
void ADXL345_SetOffset(unsigned char xOffset, unsigned char yOffset, unsigned char zOffset);
}
float x[8],y[8],z[8];
main(1)
{
if (INT2 == FALSE) //是否有中断
{
INT_DATA = ADXL345_GetRegisterValue(INT_SOURCE); //判断是谁在中断
//不知道触发中断 会引起几个中断,DATA_READY ,WATERMARK,OVERRUM ????
ADXL345_GetGxyz(float* x, float* y, float* z);
}
}
curton 2019-12-7 19:38