#ifndef __DRV_QMA7981_H__
#define __DRV_QMA7981_H__

#ifdef __cplusplus
extern "C" {
#endif

/*Includes ------------------------------------------------------*/
#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>

/*STRUCTION -----------------------------------------------------*/
typedef enum{
	QMA_ACC_ODR_OFF   					= 0x00,																								//关闭加速度
	
	QMA_ACC_ODR_12HZ5 					= 0x01,																								//采样频率 - 12.5赫兹	
	
	QMA_ACC_ODR_104HZ 					= 0x02,																								//采样频率 - 104赫兹

} QMA_ACC_ODR_e;

typedef enum{
	QMA_ACC_FS_2G   						= 0x01,																								//量程 - 2倍重力加速度
	
	QMA_ACC_FS_16G   						= 0x02,																								//量程 - 16倍重力加速度
	
} QMA_ACC_FS_e;

typedef struct 
{
	QMA_ACC_ODR_e								acc_odr;																							//加速度采样频率
	
	QMA_ACC_FS_e								acc_fs;																								//加速度量程
	
} drv_qma_config_param_t;

typedef struct
{
	int16_t 										acc[3];																								//加速度三轴
	
} qma_data_t;

/*API -------------------------------------------------------*/
/**
	@brief 		初始化QMA驱动
	@param 		无
	@return 	错误代码							- [out]	-1失败，0成功
*/
int drv_qma_Init(void);
/**
	@brief 		QMA断电
	@param 		无
	@return 	错误代码							- [out]	-1失败，0成功
*/
int drv_qma_power_off(void);
/**
	@brief 		QMA上电（默认配置挂起）
	@param 		无
	@return 	错误代码							- [out]	-1失败，0成功
*/
int drv_qma_power_on(void);
/**
	@brief 		设置ACC量程
	@param 		acc_fs 								- [in]	ACC量程
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qma_set_acc_fs(QMA_ACC_FS_e acc_fs);
/**
	@brief 		设置ACC采样频率
	@param 		acc_odr 							- [in]	ACC采样频率
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qma_set_acc_odr(QMA_ACC_ODR_e acc_odr);
/**
	@brief 		获取QMA配置参数
	@param 		param 								- [in]	QMA配置参数
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qma_get_config_param(drv_qma_config_param_t	*p_param);
/**
	@brief 		获取QMA的ACC数据
	@param 		p_data 								- [out]	返回的ACC三轴数据
	@return 	错误代码							- [out]	-1失败，0成功
*/
int	drv_qma_get_acc_data(qma_data_t	*p_data);


#ifdef __cplusplus
}
#endif

#endif




















