drv_qmc6310_v2.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #ifndef __DRV_QMC6310_V2_H__
  2. #define __DRV_QMC6310_V2_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*Includes ------------------------------------------------------*/
  7. #include <stdint.h>
  8. #include <stdio.h>
  9. #include <stdbool.h>
  10. /*STRUCTION -----------------------------------------------------*/
  11. typedef enum{
  12. QMC_MAG_ODR_OFF = 0x00, //关闭地磁计
  13. QMC_MAG_ODR_10HZ = 0x31, //采样频率 - 10赫兹
  14. QMC_MAG_ODR_100HZ = 0x39, //采样频率 - 100赫兹
  15. QMC_MAG_ODR_200HZ = 0x3D, //采样频率 - 200赫兹
  16. } QMC_MAG_ODR_e;
  17. typedef enum{
  18. QMC_MAG_FS_30GS = 0x00, //量程 - 30高斯
  19. } QMC_MAG_FS_e;
  20. typedef struct
  21. {
  22. QMC_MAG_ODR_e mag_odr; //地磁计采样频率
  23. QMC_MAG_FS_e mag_fs; //地磁计量程
  24. } drv_qmc_config_param_t;
  25. typedef struct
  26. {
  27. int16_t mag[3]; //地磁计三轴
  28. } qmc_data_t;
  29. /*API -------------------------------------------------------*/
  30. /**
  31. @brief 初始化QMC6310驱动
  32. @param 无
  33. @return 错误代码 - [out] -1失败,0成功
  34. */
  35. int drv_qmc6310_Init(void);
  36. /**
  37. @brief LSM挂起
  38. @param 无
  39. @return 错误代码 - [out] -1失败,0成功
  40. */
  41. int drv_qmc6310_suspend(void);
  42. /**
  43. @brief 设置MAG量程
  44. @param mag_fs - [in] MAG量程
  45. @return 错误代码 - [out] -1失败,0成功
  46. */
  47. int drv_qmc6310_set_mag_fs(QMC_MAG_FS_e mag_fs);
  48. /**
  49. @brief 设置MAG采样频率
  50. @param mag_odr - [in] MAG采样频率
  51. @return 错误代码 - [out] -1失败,0成功
  52. */
  53. int drv_qmc6310_set_mag_odr(QMC_MAG_ODR_e mag_odr);
  54. /**
  55. @brief 获取LSM配置参数
  56. @param param - [in] LSM配置参数
  57. @return 错误代码 - [out] -1失败,0成功
  58. */
  59. int drv_qmc6310_get_config_param(drv_qmc_config_param_t *p_param);
  60. /**
  61. @brief 获取LSM的ACC数据
  62. @param p_data - [out] 返回的ACC三轴数据
  63. @return 错误代码 - [out] -1失败,0成功
  64. */
  65. int drv_qmc6310_get_mag_data(qmc_data_t *p_data);
  66. #ifdef __cplusplus
  67. }
  68. #endif
  69. #endif