drv_qma7981.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #ifndef __DRV_QMA7981_H__
  2. #define __DRV_QMA7981_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. QMA_ACC_ODR_OFF = 0x00, //关闭加速度
  13. QMA_ACC_ODR_12HZ5 = 0x01, //采样频率 - 12.5赫兹
  14. QMA_ACC_ODR_104HZ = 0x02, //采样频率 - 104赫兹
  15. } QMA_ACC_ODR_e;
  16. typedef enum{
  17. QMA_ACC_FS_2G = 0x01, //量程 - 2倍重力加速度
  18. QMA_ACC_FS_16G = 0x02, //量程 - 16倍重力加速度
  19. } QMA_ACC_FS_e;
  20. typedef struct
  21. {
  22. QMA_ACC_ODR_e acc_odr; //加速度采样频率
  23. QMA_ACC_FS_e acc_fs; //加速度量程
  24. } drv_qma_config_param_t;
  25. typedef struct
  26. {
  27. int16_t acc[3]; //加速度三轴
  28. } qma_data_t;
  29. /*API -------------------------------------------------------*/
  30. /**
  31. @brief 初始化QMA驱动
  32. @param 无
  33. @return 错误代码 - [out] -1失败,0成功
  34. */
  35. int drv_qma_Init(void);
  36. /**
  37. @brief QMA断电
  38. @param 无
  39. @return 错误代码 - [out] -1失败,0成功
  40. */
  41. int drv_qma_power_off(void);
  42. /**
  43. @brief QMA上电(默认配置挂起)
  44. @param 无
  45. @return 错误代码 - [out] -1失败,0成功
  46. */
  47. int drv_qma_power_on(void);
  48. /**
  49. @brief 设置ACC量程
  50. @param acc_fs - [in] ACC量程
  51. @return 错误代码 - [out] -1失败,0成功
  52. */
  53. int drv_qma_set_acc_fs(QMA_ACC_FS_e acc_fs);
  54. /**
  55. @brief 设置ACC采样频率
  56. @param acc_odr - [in] ACC采样频率
  57. @return 错误代码 - [out] -1失败,0成功
  58. */
  59. int drv_qma_set_acc_odr(QMA_ACC_ODR_e acc_odr);
  60. /**
  61. @brief 获取QMA配置参数
  62. @param param - [in] QMA配置参数
  63. @return 错误代码 - [out] -1失败,0成功
  64. */
  65. int drv_qma_get_config_param(drv_qma_config_param_t *p_param);
  66. /**
  67. @brief 获取QMA的ACC数据
  68. @param p_data - [out] 返回的ACC三轴数据
  69. @return 错误代码 - [out] -1失败,0成功
  70. */
  71. int drv_qma_get_acc_data(qma_data_t *p_data);
  72. #ifdef __cplusplus
  73. }
  74. #endif
  75. #endif