#ifndef __DRV_QMC6310_V2_H__ #define __DRV_QMC6310_V2_H__ #ifdef __cplusplus extern "C" { #endif /*Includes ------------------------------------------------------*/ #include #include #include /*STRUCTION -----------------------------------------------------*/ typedef enum{ QMC_MAG_ODR_OFF = 0x00, //关闭地磁计 QMC_MAG_ODR_10HZ = 0x31, //采样频率 - 10赫兹 QMC_MAG_ODR_100HZ = 0x39, //采样频率 - 100赫兹 QMC_MAG_ODR_200HZ = 0x3D, //采样频率 - 200赫兹 } QMC_MAG_ODR_e; typedef enum{ QMC_MAG_FS_30GS = 0x00, //量程 - 30高斯 } QMC_MAG_FS_e; typedef struct { QMC_MAG_ODR_e mag_odr; //地磁计采样频率 QMC_MAG_FS_e mag_fs; //地磁计量程 } drv_qmc_config_param_t; typedef struct { int16_t mag[3]; //地磁计三轴 } qmc_data_t; /*API -------------------------------------------------------*/ /** @brief 初始化QMC6310驱动 @param 无 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_Init(void); /** @brief QMC6310断电 @param 无 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_power_off(void); /** @brief QMC6310上电(默认配置挂起) @param 无 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_power_on(void); /** @brief 设置MAG量程 @param mag_fs - [in] MAG量程 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_set_mag_fs(QMC_MAG_FS_e mag_fs); /** @brief 获取配置MAG采样频率需要的步骤数量 @return 错误代码 - [out] 配置MAG采样频率需要的步骤数量 */ int drv_qmc6310_get_mag_odr_flow(void); /** @brief 设置MAG采样频率 @param mag_odr - [in] MAG采样频率 @param flow - [in] 当前需要处理的步骤 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_set_mag_odr(QMC_MAG_ODR_e mag_odr, int flow); /** @brief 获取LSM配置参数 @param param - [in] LSM配置参数 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_get_config_param(drv_qmc_config_param_t *p_param); /** @brief 获取LSM的ACC数据 @param p_data - [out] 返回的ACC三轴数据 @return 错误代码 - [out] -1失败,0成功 */ int drv_qmc6310_get_mag_data(qmc_data_t *p_data); int drv_qmc6310_get_mag_id(void); int drv_qmc6310_selfcheck_mag(void); #ifdef __cplusplus } #endif #endif