123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #ifndef __ADXL345_H
- #define __ADXL345_H
- #include "myiic.h"
- //////////////////////////////////////////////////////////////////////////////////
- //本程序只供学习使用,未经作者许可,不得用于其它任何用途
- //ALIENTEK战舰STM32开发板
- //ADXL345 驱动代码
- //正点原子@ALIENTEK
- //技术论坛:www.openedv.com
- //修改日期:2012/9/12
- //版本:V1.0
- //版权所有,盗版必究。
- //Copyright(C) 广州市星翼电子科技有限公司 2009-2019
- //All rights reserved
- //////////////////////////////////////////////////////////////////////////////////
- #define DEVICE_ID 0X00 //器件ID,0XE5
- #define THRESH_TAP 0X1D //敲击阀值
- #define OFSX 0X1E
- #define OFSY 0X1F
- #define OFSZ 0X20
- #define DUR 0X21
- #define Latent 0X22
- #define Window 0X23
- #define THRESH_ACK 0X24
- #define THRESH_INACT 0X25
- #define TIME_INACT 0X26
- #define ACT_INACT_CTL 0X27
- #define THRESH_FF 0X28
- #define TIME_FF 0X29
- #define TAP_AXES 0X2A
- #define ACT_TAP_STATUS 0X2B
- #define BW_RATE 0X2C
- #define POWER_CTL 0X2D
- #define INT_ENABLE 0X2E
- #define INT_MAP 0X2F
- #define INT_SOURCE 0X30
- #define DATA_FORMAT 0X31
- #define DATA_X0 0X32
- #define DATA_X1 0X33
- #define DATA_Y0 0X34
- #define DATA_Y1 0X35
- #define DATA_Z0 0X36
- #define DATA_Z1 0X37
- #define FIFO_CTL 0X38
- #define FIFO_STATUS 0X39
- //0X0B TO OX1F Factory Reserved
- //如果ALT ADDRESS脚(12脚)接地,IIC地址为0X53(不包含最低位).
- //如果接V3.3,则IIC地址为0X1D(不包含最低位).
- //因为开发板接V3.3,所以转为读写地址后,为0X3B和0X3A(如果接GND,则为0XA7和0XA6)
- #define ADXL_READ 0X3B
- #define ADXL_WRITE 0X3A
- u8 ADXL345_Init(void); //初始化ADXL345
- void ADXL345_WR_Reg(u8 addr,u8 val); //写ADXL345寄存器
- u8 ADXL345_RD_Reg(u8 addr); //读ADXL345寄存器
- void ADXL345_RD_XYZ(short *x,short *y,short *z); //读取一次值
- void ADXL345_RD_Avval(short *x,short *y,short *z); //读取平均值
- void ADXL345_AUTO_Adjust(char *xval,char *yval,char *zval);//自动校准
- void ADXL345_Read_Average(short *x,short *y,short *z,u8 times);//连续读取times次,取平均
- short ADXL345_Get_Angle(float x,float y,float z,u8 dir);
- #endif
|