123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #ifndef __DRV_QMC6310_V2_H__
- #define __DRV_QMC6310_V2_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*Includes ------------------------------------------------------*/
- #include <stdint.h>
- #include <stdio.h>
- #include <stdbool.h>
- /*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
|