| LibDriver MPU9250 1.0.0 MPU9250 full function driver

driver_mpu9250.h
Go to the documentation of this file.
1
37 #ifndef DRIVER_MPU9250_H
38 #define DRIVER_MPU9250_H
39
40 #include <stdio.h>
41 #include <stdint.h>
42 #include <string.h>
43
44 #ifdef __cplusplus
45 extern "C"{
46 #endif
47
62 typedef enum
63 {
64 MPU9250_INTERFACE_IIC = 0x00,
65 MPU9250_INTERFACE_SPI = 0x01,
66 } mpu9250_interface_t;
67
71 typedef enum
72 {
73 MPU9250_ADDRESS_AD0_LOW = 0xD0,
74 MPU9250_ADDRESS_AD0_HIGH = 0xD2,
75 } mpu9250_address_t;
76
80 typedef enum
81 {
82 MPU9250_BOOL_FALSE = 0x00,
83 MPU9250_BOOL_TRUE = 0x01,
84 } mpu9250_bool_t;
85
89 typedef enum
90 {
91 MPU9250_SOURCE_ACC_X = 0x05,
92 MPU9250_SOURCE_ACC_Y = 0x04,
93 MPU9250_SOURCE_ACC_Z = 0x03,
94 MPU9250_SOURCE_GYRO_X = 0x02,
95 MPU9250_SOURCE_GYRO_Y = 0x01,
96 MPU9250_SOURCE_GYRO_Z = 0x00,
97 } mpu9250_source_t;
98
102 typedef enum
103 {
104 MPU9250_CLOCK_SOURCE_INTERNAL_20MHZ = 0x00,
105 MPU9250_CLOCK_SOURCE_PLL = 0x01,
106 MPU9250_CLOCK_SOURCE_STOP_CLOCK = 0x07,
107 } mpu9250_clock_source_t;
108
112 typedef enum
113 {
114 MPU9250_SIGNAL_PATH_RESET_TEMP = 0x00,
115 MPU9250_SIGNAL_PATH_RESET_ACCEL = 0x01,
116 MPU9250_SIGNAL_PATH_RESET_GYRO = 0x02,
117 } mpu9250_signal_path_reset_t;
118
122 typedef enum
123 {
124 MPU9250_EXTERN_SYNC_INPUT_DISABLED = 0x00,
125 MPU9250_EXTERN_SYNC_TEMP_OUT_L = 0x01,
126 MPU9250_EXTERN_SYNC_GYRO_XOUT_L = 0x02,
127 MPU9250_EXTERN_SYNC_GYRO_YOUT_L = 0x03,
128 MPU9250_EXTERN_SYNC_GYRO_ZOUT_L = 0x04,
129 MPU9250_EXTERN_SYNC_ACCEL_XOUT_L = 0x05,
130 MPU9250_EXTERN_SYNC_ACCEL_YOUT_L = 0x06,
131 MPU9250_EXTERN_SYNC_ACCEL_ZOUT_L = 0x07,
132 } mpu9250_extern_sync_t;
133
137 typedef enum
138 {
141 MPU9250_LOW_PASS_FILTER_0 = 0x00,
142 MPU9250_LOW_PASS_FILTER_1 = 0x01,
143 MPU9250_LOW_PASS_FILTER_2 = 0x02,
144 MPU9250_LOW_PASS_FILTER_3 = 0x03,
145 MPU9250_LOW_PASS_FILTER_4 = 0x04,
146 MPU9250_LOW_PASS_FILTER_5 = 0x05,
147 MPU9250_LOW_PASS_FILTER_6 = 0x06,
148 MPU9250_LOW_PASS_FILTER_7 = 0x07,
149 } mpu9250_low_pass_filter_t;
150
154 typedef enum
155 {
157 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_0 = 0x00,
158 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_1 = 0x01,
159 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_2 = 0x02,
160 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_3 = 0x03,
161 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_4 = 0x04,
162 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_5 = 0x05,
163 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_6 = 0x06,
164 MPU9250_ACCELEROMETER_LOW_PASS_FILTER_7 = 0x07,
165 } mpu9250_accelerometer_low_pass_filter_t;
166
170 typedef enum
171 {
172 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P24 = 0x00,
173 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P49 = 0x01,
174 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P98 = 0x02,
175 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_1P95 = 0x03,
176 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_3P91 = 0x04,
177 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_7P81 = 0x05,
178 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_15P63 = 0x06,
179 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_31P25 = 0x07,
180 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_62P50 = 0x08,
181 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_125 = 0x09,
182 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_250 = 0x0A,
183 MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_500 = 0x0B,
184 } mpu9250_low_power_accel_output_rate_t;
185
189 typedef enum
190 {
191 MPU9250_AXIS_Z = 0x05,
192 MPU9250_AXIS_Y = 0x06,
193 MPU9250_AXIS_X = 0x07,
194 } mpu9250_axis_t;
195
199 typedef enum
200 {
201 MPU9250_GYROSCOPE_RANGE_250DPS = 0x00,
202 MPU9250_GYROSCOPE_RANGE_500DPS = 0x01,
203 MPU9250_GYROSCOPE_RANGE_1000DPS = 0x02,
204 MPU9250_GYROSCOPE_RANGE_2000DPS = 0x03,
205 } mpu9250_gyroscope_range_t;
206
210 typedef enum
211 {
212 MPU9250_ACCELEROMETER_RANGE_2G = 0x00,
213 MPU9250_ACCELEROMETER_RANGE_4G = 0x01,
214 MPU9250_ACCELEROMETER_RANGE_8G = 0x02,
215 MPU9250_ACCELEROMETER_RANGE_16G = 0x03,
216 } mpu9250_accelerometer_range_t;
217
221 typedef enum
222 {
223 MPU9250_FIFO_TEMP = 0x07,
224 MPU9250_FIFO_XG = 0x06,
225 MPU9250_FIFO_YG = 0x05,
226 MPU9250_FIFO_ZG = 0x04,
227 MPU9250_FIFO_ACCEL = 0x03,
228 } mpu9250_fifo_t;
229
233 typedef enum
234 {
235 MPU9250_FIFO_MODE_STREAM = 0x00,
237 MPU9250_FIFO_MODE_NORMAL = 0x01,
238 } mpu9250_fifo_mode;
239
243 typedef enum
244 {
245 MPU9250_PIN_LEVEL_HIGH = 0x00,
246 MPU9250_PIN_LEVEL_LOW = 0x01,
247 } mpu9250_pin_level_t;
248
252 typedef enum
253 {
254 MPU9250_PIN_TYPE_PUSH_PULL = 0x00,
255 MPU9250_PIN_TYPE_OPEN_DRAIN = 0x01,
256 } mpu9250_pin_type_t;
257
261 typedef enum
262 {
263 MPU9250_INTERRUPT_MOTION = 6,
264 MPU9250_INTERRUPT_FIFO_OVERFLOW = 4,
265 MPU9250_INTERRUPT_FSYNC_INT = 3,
266 MPU9250_INTERRUPT_DMP = 1,
267 MPU9250_INTERRUPT_DATA_READY = 0,
268 } mpu9250_interrupt_t;
269
273 typedef enum
274 {
275 MPU9250_IIC_SLAVE_0 = 0x00,
276 MPU9250_IIC_SLAVE_1 = 0x01,
277 MPU9250_IIC_SLAVE_2 = 0x02,
278 MPU9250_IIC_SLAVE_3 = 0x03,
279 MPU9250_IIC_SLAVE_4 = 0x04,
280 } mpu9250_iic_slave_t;
281
285 typedef enum
286 {
287 MPU9250_IIC_CLOCK_348_KHZ = 0x00,
288 MPU9250_IIC_CLOCK_333_KHZ = 0x01,
289 MPU9250_IIC_CLOCK_320_KHZ = 0x02,
290 MPU9250_IIC_CLOCK_308_KHZ = 0x03,
291 MPU9250_IIC_CLOCK_296_KHZ = 0x04,
292 MPU9250_IIC_CLOCK_286_KHZ = 0x05,
293 MPU9250_IIC_CLOCK_276_KHZ = 0x06,
294 MPU9250_IIC_CLOCK_267_KHZ = 0x07,
295 MPU9250_IIC_CLOCK_258_KHZ = 0x08,
296 MPU9250_IIC_CLOCK_500_KHZ = 0x09,
297 MPU9250_IIC_CLOCK_471_KHZ = 0x0A,
298 MPU9250_IIC_CLOCK_444_KHZ = 0x0B,
299 MPU9250_IIC_CLOCK_421_KHZ = 0x0C,
300 MPU9250_IIC_CLOCK_400_KHZ = 0x0D,
301 MPU9250_IIC_CLOCK_381_KHZ = 0x0E,
302 MPU9250_IIC_CLOCK_364_KHZ = 0x0F,
303 } mpu9250_iic_clock_t;
304
308 typedef enum
309 {
310 MPU9250_IIC_READ_MODE_RESTART = 0x00,
311 MPU9250_IIC_READ_MODE_STOP_AND_START = 0x01,
312 } mpu9250_iic_read_mode_t;
313
317 typedef enum
318 {
319 MPU9250_IIC_MODE_WRITE = 0x00,
320 MPU9250_IIC_MODE_READ = 0x01,
321 } mpu9250_iic_mode_t;
322
326 typedef enum
327 {
328 MPU9250_IIC_TRANSACTION_MODE_DATA = 0x00,
329 MPU9250_IIC_TRANSACTION_MODE_REG_DATA = 0x01,
330 } mpu9250_iic_transaction_mode_t;
331
335 typedef enum
336 {
337 MPU9250_IIC4_TRANSACTION_MODE_DATA = 0x00,
338 MPU9250_IIC4_TRANSACTION_MODE_REG = 0x01,
339 } mpu9250_iic4_transaction_mode_t;
340
344 typedef enum
345 {
346 MPU9250_IIC_GROUP_ORDER_EVEN = 0x00,
348 MPU9250_IIC_GROUP_ORDER_ODD = 0x01,
350 } mpu9250_iic_group_order_t;
351
355 typedef enum
356 {
357 MPU9250_IIC_STATUS_PASS_THROUGH = 0x80,
358 MPU9250_IIC_STATUS_IIC_SLV4_DONE = 0x40,
359 MPU9250_IIC_STATUS_IIC_LOST_ARB = 0x20,
360 MPU9250_IIC_STATUS_IIC_SLV4_NACK = 0x10,
361 MPU9250_IIC_STATUS_IIC_SLV3_NACK = 0x08,
362 MPU9250_IIC_STATUS_IIC_SLV2_NACK = 0x04,
363 MPU9250_IIC_STATUS_IIC_SLV1_NACK = 0x02,
364 MPU9250_IIC_STATUS_IIC_SLV0_NACK = 0x01,
365 } mpu9250_iic_status_t;
366
370 typedef enum
371 {
372 MPU9250_IIC_DELAY_ES_SHADOW = 7,
374 MPU9250_IIC_DELAY_SLAVE_4 = 4,
375 MPU9250_IIC_DELAY_SLAVE_3 = 3,
376 MPU9250_IIC_DELAY_SLAVE_2 = 2,
377 MPU9250_IIC_DELAY_SLAVE_1 = 1,
378 MPU9250_IIC_DELAY_SLAVE_0 = 0,
379 } mpu9250_iic_delay_t;
380
393 typedef enum
394 {
395 MPU9250_MAGNETOMETER_STATUS1_DRDY = (1 << 0),
396 MPU9250_MAGNETOMETER_STATUS1_DOR = (1 << 1),
397 } mpu9250_magnetometer_status1_t;
398
402 typedef enum
403 {
404 MPU9250_MAGNETOMETER_STATUS2_HOFL = (1 << 3),
405 MPU9250_MAGNETOMETER_STATUS2_BITM = (1 << 4),
406 } mpu9250_magnetometer_status2_t;
407
411 typedef enum
412 {
413 MPU9250_MAGNETOMETER_MODE_POWER_DOWN = 0x00,
414 MPU9250_MAGNETOMETER_MODE_SINGLE = 0x01,
415 MPU9250_MAGNETOMETER_MODE_CONTINUOUS1 = 0x02,
416 MPU9250_MAGNETOMETER_MODE_CONTINUOUS2 = 0x06,
417 MPU9250_MAGNETOMETER_MODE_EXT_TRIGGER = 0x04,
418 MPU9250_MAGNETOMETER_MODE_SELF_TEST = 0x08,
419 MPU9250_MAGNETOMETER_MODE_FUSE_ROM = 0x0F,
420 } mpu9250_magnetometer_mode_t;
421
425 typedef enum
426 {
427 MPU9250_MAGNETOMETER_BITS_14 = 0x00,
428 MPU9250_MAGNETOMETER_BITS_16 = 0x01,
429 } mpu9250_magnetometer_bits_t;
430
443 typedef enum
444 {
445 MPU9250_DMP_INTERRUPT_MODE_CONTINUOUS = 0x00,
446 MPU9250_DMP_INTERRUPT_MODE_GESTURE = 0x01,
447 } mpu9250_dmp_interrupt_mode_t;
448
452 typedef enum
453 {
454 MPU9250_DMP_FEATURE_TAP = 0x001,
455 MPU9250_DMP_FEATURE_ORIENT = 0x002,
456 MPU9250_DMP_FEATURE_3X_QUAT = 0x004,
457 MPU9250_DMP_FEATURE_PEDOMETER = 0x008,
458 MPU9250_DMP_FEATURE_6X_QUAT = 0x010,
459 MPU9250_DMP_FEATURE_GYRO_CAL = 0x020,
460 MPU9250_DMP_FEATURE_SEND_RAW_ACCEL = 0x040,
461 MPU9250_DMP_FEATURE_SEND_RAW_GYRO = 0x080,
462 MPU9250_DMP_FEATURE_SEND_CAL_GYRO = 0x100,
463 } mpu9250_dmp_feature_t;
464
468 typedef enum
469 {
470 MPU9250_DMP_TAP_X_UP = 0x01,
471 MPU9250_DMP_TAP_X_DOWN = 0x02,
472 MPU9250_DMP_TAP_Y_UP = 0x03,
473 MPU9250_DMP_TAP_Y_DOWN = 0x04,
474 MPU9250_DMP_TAP_Z_UP = 0x05,
475 MPU9250_DMP_TAP_Z_DOWN = 0x06,
476 } mpu9250_dmp_tap_t;
477
481 typedef enum
482 {
483 MPU9250_DMP_ORIENT_PORTRAIT = 0x00,
484 MPU9250_DMP_ORIENT_LANDSCAPE = 0x01,
485 MPU9250_DMP_ORIENT_REVERSE_PORTRAIT = 0x02,
486 MPU9250_DMP_ORIENT_REVERSE_LANDSCAPE = 0x03,
487 } mpu9250_dmp_orient_t;
488
501 typedef struct mpu9250_handle_s
502 {
503 uint8_t iic_addr;
504 uint8_t (*iic_init)(void);
505 uint8_t (*iic_deinit)(void);
506 uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
507 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
508 uint8_t (*spi_init)(void);
509 uint8_t (*spi_deinit)(void);
510 uint8_t (*spi_read)(uint8_t reg, uint8_t *buf, uint16_t len);
511 uint8_t (*spi_write)(uint8_t reg, uint8_t *buf, uint16_t len);
512 void (*delay_ms)(uint32_t ms);
513 void (*debug_print)(const char *const fmt, ...);
514 void (*receive_callback)(uint8_t type);
515 void (*dmp_tap_callback)(uint8_t count, uint8_t direction);
516 void (*dmp_orient_callback)(uint8_t orientation);
517 uint8_t inited;
518 uint8_t mag_inited;
519 uint8_t mag_asa[3];
520 uint8_t iic_spi;
521 uint8_t dmp_inited;
522 uint16_t orient;
523 uint16_t mask;
524 uint8_t buf[1024];
525 } mpu9250_handle_t;
526
530 typedef struct mpu9250_info_s
531 {
532 char chip_name[32];
533 char manufacturer_name[32];
534 char interface[8];
535 float supply_voltage_min_v;
536 float supply_voltage_max_v;
537 float max_current_ma;
538 float temperature_min;
539 float temperature_max;
540 uint32_t driver_version;
541 } mpu9250_info_t;
542
560 #define DRIVER_MPU9250_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
561
568 #define DRIVER_MPU9250_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
569
576 #define DRIVER_MPU9250_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
577
584 #define DRIVER_MPU9250_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
585
592 #define DRIVER_MPU9250_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
593
600 #define DRIVER_MPU9250_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
601
608 #define DRIVER_MPU9250_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
609
616 #define DRIVER_MPU9250_LINK_SPI_READ(HANDLE, FUC) (HANDLE)->spi_read = FUC
617
624 #define DRIVER_MPU9250_LINK_SPI_WRITE(HANDLE, FUC) (HANDLE)->spi_write = FUC
625
632 #define DRIVER_MPU9250_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
633
640 #define DRIVER_MPU9250_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
641
648 #define DRIVER_MPU9250_LINK_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
649
669 uint8_t mpu9250_info(mpu9250_info_t *info);
670
680 uint8_t mpu9250_set_interface(mpu9250_handle_t *handle, mpu9250_interface_t interface);
681
691 uint8_t mpu9250_get_interface(mpu9250_handle_t *handle, mpu9250_interface_t *interface);
692
702 uint8_t mpu9250_set_addr_pin(mpu9250_handle_t *handle, mpu9250_address_t addr_pin);
703
713 uint8_t mpu9250_get_addr_pin(mpu9250_handle_t *handle, mpu9250_address_t *addr_pin);
714
725 uint8_t mpu9250_irq_handler(mpu9250_handle_t *handle);
726
739 uint8_t mpu9250_init(mpu9250_handle_t *handle);
740
752 uint8_t mpu9250_deinit(mpu9250_handle_t *handle);
753
774 uint8_t mpu9250_read(mpu9250_handle_t *handle,
775 int16_t (*accel_raw)[3], float (*accel_g)[3],
776 int16_t (*gyro_raw)[3], float (*gyro_dps)[3],
777 int16_t (*mag_raw)[3], float (*mag_ut)[3],
778 uint16_t *len
779 );
780
793 uint8_t mpu9250_read_temperature(mpu9250_handle_t *handle, int16_t (*raw), float *degrees);
794
806 uint8_t mpu9250_set_fifo(mpu9250_handle_t *handle, mpu9250_bool_t enable);
807
819 uint8_t mpu9250_get_fifo(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
820
831 uint8_t mpu9250_force_fifo_reset(mpu9250_handle_t *handle);
832
844 uint8_t mpu9250_set_iic_master(mpu9250_handle_t *handle, mpu9250_bool_t enable);
845
857 uint8_t mpu9250_get_iic_master(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
858
870 uint8_t mpu9250_set_disable_iic_slave(mpu9250_handle_t *handle, mpu9250_bool_t enable);
871
883 uint8_t mpu9250_get_disable_iic_slave(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
884
895 uint8_t mpu9250_fifo_reset(mpu9250_handle_t *handle);
896
908 uint8_t mpu9250_get_fifo_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
909
920 uint8_t mpu9250_iic_master_reset(mpu9250_handle_t *handle);
921
933 uint8_t mpu9250_get_iic_master_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
934
945 uint8_t mpu9250_sensor_reset(mpu9250_handle_t *handle);
946
958 uint8_t mpu9250_get_sensor_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
959
970 uint8_t mpu9250_device_reset(mpu9250_handle_t *handle);
971
983 uint8_t mpu9250_get_device_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
984
996 uint8_t mpu9250_set_clock_source(mpu9250_handle_t *handle, mpu9250_clock_source_t clock_source);
997
1009 uint8_t mpu9250_get_clock_source(mpu9250_handle_t *handle, mpu9250_clock_source_t *clock_source);
1010
1022 uint8_t mpu9250_set_ptat(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1023
1035 uint8_t mpu9250_get_ptat(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1036
1048 uint8_t mpu9250_set_cycle_wake_up(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1049
1061 uint8_t mpu9250_get_cycle_wake_up(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1062
1074 uint8_t mpu9250_set_sleep(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1075
1087 uint8_t mpu9250_get_sleep(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1088
1100 uint8_t mpu9250_set_gyro_standby(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1101
1113 uint8_t mpu9250_get_gyro_standby(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1114
1127 uint8_t mpu9250_set_standby_mode(mpu9250_handle_t *handle, mpu9250_source_t source, mpu9250_bool_t enable);
1128
1141 uint8_t mpu9250_get_standby_mode(mpu9250_handle_t *handle, mpu9250_source_t source, mpu9250_bool_t *enable);
1142
1154 uint8_t mpu9250_get_fifo_count(mpu9250_handle_t *handle, uint16_t* count);
1155
1168 uint8_t mpu9250_fifo_get(mpu9250_handle_t *handle, uint8_t *buf, uint16_t len);
1169
1182 uint8_t mpu9250_fifo_set(mpu9250_handle_t *handle, uint8_t *buf, uint16_t len);
1183
1195 uint8_t mpu9250_set_signal_path_reset(mpu9250_handle_t *handle, mpu9250_signal_path_reset_t path);
1196
1208 uint8_t mpu9250_set_sample_rate_divider(mpu9250_handle_t *handle, uint8_t d);
1209
1221 uint8_t mpu9250_get_sample_rate_divider(mpu9250_handle_t *handle, uint8_t *d);
1222
1234 uint8_t mpu9250_set_extern_sync(mpu9250_handle_t *handle, mpu9250_extern_sync_t sync);
1235
1247 uint8_t mpu9250_get_extern_sync(mpu9250_handle_t *handle, mpu9250_extern_sync_t *sync);
1248
1260 uint8_t mpu9250_set_low_pass_filter(mpu9250_handle_t *handle, mpu9250_low_pass_filter_t filter);
1261
1273 uint8_t mpu9250_get_low_pass_filter(mpu9250_handle_t *handle, mpu9250_low_pass_filter_t *filter);
1274
1286 uint8_t mpu9250_set_fifo_mode(mpu9250_handle_t *handle, mpu9250_fifo_mode mode);
1287
1299 uint8_t mpu9250_get_fifo_mode(mpu9250_handle_t *handle, mpu9250_fifo_mode *mode);
1300
1313 uint8_t mpu9250_set_gyroscope_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t enable);
1314
1327 uint8_t mpu9250_get_gyroscope_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t *enable);
1328
1340 uint8_t mpu9250_set_gyroscope_range(mpu9250_handle_t *handle, mpu9250_gyroscope_range_t range);
1341
1353 uint8_t mpu9250_get_gyroscope_range(mpu9250_handle_t *handle, mpu9250_gyroscope_range_t *range);
1354
1367 uint8_t mpu9250_set_gyroscope_choice(mpu9250_handle_t *handle, uint8_t choice);
1368
1380 uint8_t mpu9250_get_gyroscope_choice(mpu9250_handle_t *handle, uint8_t *choice);
1381
1394 uint8_t mpu9250_set_accelerometer_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t enable);
1395
1408 uint8_t mpu9250_get_accelerometer_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t *enable);
1409
1421 uint8_t mpu9250_set_accelerometer_range(mpu9250_handle_t *handle, mpu9250_accelerometer_range_t range);
1422
1434 uint8_t mpu9250_get_accelerometer_range(mpu9250_handle_t *handle, mpu9250_accelerometer_range_t *range);
1435
1446 uint8_t mpu9250_set_fifo_1024kb(mpu9250_handle_t *handle);
1447
1460 uint8_t mpu9250_set_accelerometer_choice(mpu9250_handle_t *handle, uint8_t choice);
1461
1474 uint8_t mpu9250_get_accelerometer_choice(mpu9250_handle_t *handle, uint8_t *choice);
1475
1487 uint8_t mpu9250_set_accelerometer_low_pass_filter(mpu9250_handle_t *handle, mpu9250_accelerometer_low_pass_filter_t filter);
1488
1500 uint8_t mpu9250_get_accelerometer_low_pass_filter(mpu9250_handle_t *handle, mpu9250_accelerometer_low_pass_filter_t *filter);
1501
1513 uint8_t mpu9250_set_low_power_accel_output_rate(mpu9250_handle_t *handle, mpu9250_low_power_accel_output_rate_t rate);
1514
1526 uint8_t mpu9250_get_low_power_accel_output_rate(mpu9250_handle_t *handle, mpu9250_low_power_accel_output_rate_t *rate);
1527
1539 uint8_t mpu9250_set_wake_on_motion(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1540
1552 uint8_t mpu9250_get_wake_on_motion(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1553
1565 uint8_t mpu9250_set_accel_compare_with_previous_sample(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1566
1578 uint8_t mpu9250_get_accel_compare_with_previous_sample(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1579
1591 uint8_t mpu9250_set_accelerometer_x_offset(mpu9250_handle_t *handle, int16_t offset);
1592
1604 uint8_t mpu9250_get_accelerometer_x_offset(mpu9250_handle_t *handle, int16_t *offset);
1605
1617 uint8_t mpu9250_set_accelerometer_y_offset(mpu9250_handle_t *handle, int16_t offset);
1618
1630 uint8_t mpu9250_get_accelerometer_y_offset(mpu9250_handle_t *handle, int16_t *offset);
1631
1643 uint8_t mpu9250_set_accelerometer_z_offset(mpu9250_handle_t *handle, int16_t offset);
1644
1656 uint8_t mpu9250_get_accelerometer_z_offset(mpu9250_handle_t *handle, int16_t *offset);
1657
1669 uint8_t mpu9250_accelerometer_offset_convert_to_register(mpu9250_handle_t *handle, float mg, int16_t *reg);
1670
1682 uint8_t mpu9250_accelerometer_offset_convert_to_data(mpu9250_handle_t *handle, int16_t reg, float *mg);
1683
1695 uint8_t mpu9250_set_gyro_x_offset(mpu9250_handle_t *handle, int16_t offset);
1696
1708 uint8_t mpu9250_get_gyro_x_offset(mpu9250_handle_t *handle, int16_t *offset);
1709
1721 uint8_t mpu9250_set_gyro_y_offset(mpu9250_handle_t *handle, int16_t offset);
1722
1734 uint8_t mpu9250_get_gyro_y_offset(mpu9250_handle_t *handle, int16_t *offset);
1735
1747 uint8_t mpu9250_set_gyro_z_offset(mpu9250_handle_t *handle, int16_t offset);
1748
1760 uint8_t mpu9250_get_gyro_z_offset(mpu9250_handle_t *handle, int16_t *offset);
1761
1773 uint8_t mpu9250_gyro_offset_convert_to_register(mpu9250_handle_t *handle, float dps, int16_t *reg);
1774
1786 uint8_t mpu9250_gyro_offset_convert_to_data(mpu9250_handle_t *handle, int16_t reg, float *dps);
1787
1800 uint8_t mpu9250_set_fifo_enable(mpu9250_handle_t *handle, mpu9250_fifo_t fifo, mpu9250_bool_t enable);
1801
1814 uint8_t mpu9250_get_fifo_enable(mpu9250_handle_t *handle, mpu9250_fifo_t fifo, mpu9250_bool_t *enable);
1815
1827 uint8_t mpu9250_set_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t level);
1828
1840 uint8_t mpu9250_get_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t *level);
1841
1853 uint8_t mpu9250_set_interrupt_pin_type(mpu9250_handle_t *handle, mpu9250_pin_type_t type);
1854
1866 uint8_t mpu9250_get_interrupt_pin_type(mpu9250_handle_t *handle, mpu9250_pin_type_t *type);
1867
1879 uint8_t mpu9250_set_interrupt_latch(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1880
1892 uint8_t mpu9250_get_interrupt_latch(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1893
1905 uint8_t mpu9250_set_interrupt_read_clear(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1906
1918 uint8_t mpu9250_get_interrupt_read_clear(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1919
1931 uint8_t mpu9250_set_fsync_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t level);
1932
1944 uint8_t mpu9250_get_fsync_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t *level);
1945
1957 uint8_t mpu9250_set_fsync_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1958
1970 uint8_t mpu9250_get_fsync_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1971
1983 uint8_t mpu9250_set_iic_bypass(mpu9250_handle_t *handle, mpu9250_bool_t enable);
1984
1996 uint8_t mpu9250_get_iic_bypass(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
1997
2010 uint8_t mpu9250_set_interrupt(mpu9250_handle_t *handle, mpu9250_interrupt_t type, mpu9250_bool_t enable);
2011
2024 uint8_t mpu9250_get_interrupt(mpu9250_handle_t *handle, mpu9250_interrupt_t type, mpu9250_bool_t *enable);
2025
2037 uint8_t mpu9250_get_interrupt_status(mpu9250_handle_t *handle, uint8_t *status);
2038
2050 uint8_t mpu9250_set_gyroscope_x_test(mpu9250_handle_t *handle, uint8_t data);
2051
2063 uint8_t mpu9250_get_gyroscope_x_test(mpu9250_handle_t *handle, uint8_t *data);
2064
2076 uint8_t mpu9250_set_gyroscope_y_test(mpu9250_handle_t *handle, uint8_t data);
2077
2089 uint8_t mpu9250_get_gyroscope_y_test(mpu9250_handle_t *handle, uint8_t *data);
2090
2102 uint8_t mpu9250_set_gyroscope_z_test(mpu9250_handle_t *handle, uint8_t data);
2103
2115 uint8_t mpu9250_get_gyroscope_z_test(mpu9250_handle_t *handle, uint8_t *data);
2116
2128 uint8_t mpu9250_set_accelerometer_x_test(mpu9250_handle_t *handle, uint8_t data);
2129
2141 uint8_t mpu9250_get_accelerometer_x_test(mpu9250_handle_t *handle, uint8_t *data);
2142
2154 uint8_t mpu9250_set_accelerometer_y_test(mpu9250_handle_t *handle, uint8_t data);
2155
2167 uint8_t mpu9250_get_accelerometer_y_test(mpu9250_handle_t *handle, uint8_t *data);
2168
2180 uint8_t mpu9250_set_accelerometer_z_test(mpu9250_handle_t *handle, uint8_t data);
2181
2193 uint8_t mpu9250_get_accelerometer_z_test(mpu9250_handle_t *handle, uint8_t *data);
2194
2206 uint8_t mpu9250_set_motion_threshold(mpu9250_handle_t *handle, uint8_t threshold);
2207
2219 uint8_t mpu9250_get_motion_threshold(mpu9250_handle_t *handle, uint8_t *threshold);
2220
2232 uint8_t mpu9250_motion_threshold_convert_to_register(mpu9250_handle_t *handle, float mg, uint8_t *reg);
2233
2245 uint8_t mpu9250_motion_threshold_convert_to_data(mpu9250_handle_t *handle, uint8_t reg, float *mg);
2246
2259 uint8_t mpu9250_self_test(mpu9250_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3]);
2260
2272 uint8_t mpu9250_set_iic_clock(mpu9250_handle_t *handle, mpu9250_iic_clock_t clk);
2273
2285 uint8_t mpu9250_get_iic_clock(mpu9250_handle_t *handle, mpu9250_iic_clock_t *clk);
2286
2298 uint8_t mpu9250_set_iic_multi_master(mpu9250_handle_t *handle, mpu9250_bool_t enable);
2299
2311 uint8_t mpu9250_get_iic_multi_master(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
2312
2324 uint8_t mpu9250_set_iic_wait_for_external_sensor(mpu9250_handle_t *handle, mpu9250_bool_t enable);
2325
2337 uint8_t mpu9250_get_iic_wait_for_external_sensor(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
2338
2350 uint8_t mpu9250_set_iic_read_mode(mpu9250_handle_t *handle, mpu9250_iic_read_mode_t mode);
2351
2363 uint8_t mpu9250_get_iic_read_mode(mpu9250_handle_t *handle, mpu9250_iic_read_mode_t *mode);
2364
2378 uint8_t mpu9250_set_iic_fifo_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t enable);
2379
2393 uint8_t mpu9250_get_iic_fifo_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t *enable);
2394
2408 uint8_t mpu9250_set_iic_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_mode_t mode);
2409
2423 uint8_t mpu9250_get_iic_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_mode_t *mode);
2424
2438 uint8_t mpu9250_set_iic_address(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t addr_7bit);
2439
2453 uint8_t mpu9250_get_iic_address(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *addr_7bit);
2454
2468 uint8_t mpu9250_set_iic_register(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t reg);
2469
2483 uint8_t mpu9250_get_iic_register(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *reg);
2484
2498 uint8_t mpu9250_set_iic_data_out(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t data);
2499
2513 uint8_t mpu9250_get_iic_data_out(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *data);
2514
2528 uint8_t mpu9250_set_iic_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t enable);
2529
2543 uint8_t mpu9250_get_iic_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t *enable);
2544
2558 uint8_t mpu9250_set_iic_byte_swap(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t enable);
2559
2573 uint8_t mpu9250_get_iic_byte_swap(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t *enable);
2574
2588 uint8_t mpu9250_set_iic_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_transaction_mode_t mode);
2589
2603 uint8_t mpu9250_get_iic_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_transaction_mode_t *mode);
2604
2618 uint8_t mpu9250_set_iic_group_order(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_group_order_t order);
2619
2633 uint8_t mpu9250_get_iic_group_order(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_group_order_t *order);
2634
2649 uint8_t mpu9250_set_iic_transferred_len(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t len);
2650
2664 uint8_t mpu9250_get_iic_transferred_len(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *len);
2665
2677 uint8_t mpu9250_get_iic_status(mpu9250_handle_t *handle, uint8_t *status);
2678
2691 uint8_t mpu9250_set_iic_delay_enable(mpu9250_handle_t *handle, mpu9250_iic_delay_t delay, mpu9250_bool_t enable);
2692
2705 uint8_t mpu9250_get_iic_delay_enable(mpu9250_handle_t *handle, mpu9250_iic_delay_t delay, mpu9250_bool_t *enable);
2706
2718 uint8_t mpu9250_set_iic4_enable(mpu9250_handle_t *handle, mpu9250_bool_t enable);
2719
2731 uint8_t mpu9250_get_iic4_enable(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
2732
2744 uint8_t mpu9250_set_iic4_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t enable);
2745
2757 uint8_t mpu9250_get_iic4_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
2758
2770 uint8_t mpu9250_set_iic4_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic4_transaction_mode_t mode);
2771
2783 uint8_t mpu9250_get_iic4_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic4_transaction_mode_t *mode);
2784
2797 uint8_t mpu9250_set_iic_delay(mpu9250_handle_t *handle, uint8_t delay);
2798
2810 uint8_t mpu9250_get_iic_delay(mpu9250_handle_t *handle, uint8_t *delay);
2811
2823 uint8_t mpu9250_set_iic4_data_out(mpu9250_handle_t *handle, uint8_t data);
2824
2836 uint8_t mpu9250_get_iic4_data_out(mpu9250_handle_t *handle, uint8_t *data);
2837
2849 uint8_t mpu9250_set_iic4_data_in(mpu9250_handle_t *handle, uint8_t data);
2850
2862 uint8_t mpu9250_get_iic4_data_in(mpu9250_handle_t *handle, uint8_t *data);
2863
2877 uint8_t mpu9250_read_extern_sensor_data(mpu9250_handle_t *handle, uint8_t *data, uint8_t len);
2878
2903 uint8_t mpu9250_dmp_load_firmware(mpu9250_handle_t *handle);
2904
2917 uint8_t mpu9250_dmp_set_pedometer_walk_time(mpu9250_handle_t *handle, uint32_t ms);
2918
2931 uint8_t mpu9250_dmp_get_pedometer_walk_time(mpu9250_handle_t *handle, uint32_t *ms);
2932
2945 uint8_t mpu9250_dmp_set_pedometer_step_count(mpu9250_handle_t *handle, uint32_t count);
2946
2959 uint8_t mpu9250_dmp_get_pedometer_step_count(mpu9250_handle_t *handle, uint32_t *count);
2960
2973 uint8_t mpu9250_dmp_set_shake_reject_timeout(mpu9250_handle_t *handle, uint16_t ms);
2974
2987 uint8_t mpu9250_dmp_get_shake_reject_timeout(mpu9250_handle_t *handle, uint16_t *ms);
2988
3001 uint8_t mpu9250_dmp_set_shake_reject_time(mpu9250_handle_t *handle, uint16_t ms);
3002
3015 uint8_t mpu9250_dmp_get_shake_reject_time(mpu9250_handle_t *handle, uint16_t *ms);
3016
3029 uint8_t mpu9250_dmp_set_shake_reject_thresh(mpu9250_handle_t *handle, uint16_t dps);
3030
3043 uint8_t mpu9250_dmp_get_shake_reject_thresh(mpu9250_handle_t *handle, uint16_t *dps);
3044
3057 uint8_t mpu9250_dmp_set_tap_time_multi(mpu9250_handle_t *handle, uint16_t ms);
3058
3071 uint8_t mpu9250_dmp_get_tap_time_multi(mpu9250_handle_t *handle, uint16_t *ms);
3072
3085 uint8_t mpu9250_dmp_set_tap_time(mpu9250_handle_t *handle, uint16_t ms);
3086
3099 uint8_t mpu9250_dmp_get_tap_time(mpu9250_handle_t *handle, uint16_t *ms);
3100
3114 uint8_t mpu9250_dmp_set_min_tap_count(mpu9250_handle_t *handle, uint8_t cnt);
3115
3128 uint8_t mpu9250_dmp_get_min_tap_count(mpu9250_handle_t *handle, uint8_t *cnt);
3129
3142 uint8_t mpu9250_dmp_set_gyro_calibrate(mpu9250_handle_t *handle, mpu9250_bool_t enable);
3143
3156 uint8_t mpu9250_dmp_set_3x_quaternion(mpu9250_handle_t *handle, mpu9250_bool_t enable);
3157
3170 uint8_t mpu9250_dmp_set_6x_quaternion(mpu9250_handle_t *handle, mpu9250_bool_t enable);
3171
3184 uint8_t mpu9250_dmp_set_interrupt_mode(mpu9250_handle_t *handle, mpu9250_dmp_interrupt_mode_t mode);
3185
3198 uint8_t mpu9250_dmp_set_gyro_bias(mpu9250_handle_t *handle, int32_t bias[3]);
3199
3212 uint8_t mpu9250_dmp_set_accel_bias(mpu9250_handle_t *handle, int32_t bias[3]);
3213
3226 uint8_t mpu9250_dmp_set_orientation(mpu9250_handle_t *handle, int8_t mat[9]);
3227
3244 uint8_t mpu9250_dmp_set_feature(mpu9250_handle_t *handle, uint16_t mask);
3245
3259 uint8_t mpu9250_dmp_set_fifo_rate(mpu9250_handle_t *handle, uint16_t rate);
3260
3273 uint8_t mpu9250_dmp_get_fifo_rate(mpu9250_handle_t *handle, uint16_t *rate);
3274
3288 uint8_t mpu9250_dmp_set_tap_axes(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t enable);
3289
3303 uint8_t mpu9250_dmp_get_tap_axes(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t *enable);
3304
3320 uint8_t mpu9250_dmp_set_tap_thresh(mpu9250_handle_t *handle, mpu9250_axis_t axis, uint16_t mg_ms);
3321
3336 uint8_t mpu9250_dmp_get_tap_thresh(mpu9250_handle_t *handle, mpu9250_axis_t axis, uint16_t *mg_ms);
3337
3362 uint8_t mpu9250_dmp_read(mpu9250_handle_t *handle,
3363 int16_t (*accel_raw)[3], float (*accel_g)[3],
3364 int16_t (*gyro_raw)[3], float (*gyro_dps)[3],
3365 int32_t (*quat)[4],
3366 float *pitch, float *roll, float *yaw,
3367 uint16_t *l
3368 );
3369
3382 uint8_t mpu9250_dmp_set_tap_callback(mpu9250_handle_t *handle, void (*callback)(uint8_t count, uint8_t direction));
3383
3396 uint8_t mpu9250_dmp_set_orient_callback(mpu9250_handle_t *handle, void (*callback)(uint8_t orientation));
3397
3410 uint8_t mpu9250_dmp_set_enable(mpu9250_handle_t *handle, mpu9250_bool_t enable);
3411
3427 uint8_t mpu9250_dmp_gyro_accel_raw_offset_convert(mpu9250_handle_t *handle,
3428 int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3],
3429 int32_t gyro_offset[3], int32_t accel_offset[3]);
3430
3455 uint8_t mpu9250_mag_init(mpu9250_handle_t *handle);
3456
3468 uint8_t mpu9250_mag_deinit(mpu9250_handle_t *handle);
3469
3483 uint8_t mpu9250_mag_read(mpu9250_handle_t *handle, int16_t mag_raw[3], float mag_ut[3]);
3484
3497 uint8_t mpu9250_mag_get_info(mpu9250_handle_t *handle, uint8_t *info);
3498
3511 uint8_t mpu9250_mag_get_status1(mpu9250_handle_t *handle, uint8_t *status);
3512
3525 uint8_t mpu9250_mag_get_status2(mpu9250_handle_t *handle, uint8_t *status);
3526
3539 uint8_t mpu9250_mag_set_mode(mpu9250_handle_t *handle, mpu9250_magnetometer_mode_t mode);
3540
3553 uint8_t mpu9250_mag_get_mode(mpu9250_handle_t *handle, mpu9250_magnetometer_mode_t *mode);
3554
3567 uint8_t mpu9250_mag_set_bits(mpu9250_handle_t *handle, mpu9250_magnetometer_bits_t bits);
3568
3581 uint8_t mpu9250_mag_get_bits(mpu9250_handle_t *handle, mpu9250_magnetometer_bits_t *bits);
3582
3595 uint8_t mpu9250_mag_set_reset(mpu9250_handle_t *handle, mpu9250_bool_t enable);
3596
3609 uint8_t mpu9250_mag_get_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
3610
3623 uint8_t mpu9250_mag_set_self_test(mpu9250_handle_t *handle, mpu9250_bool_t enable);
3624
3637 uint8_t mpu9250_mag_get_self_test(mpu9250_handle_t *handle, mpu9250_bool_t *enable);
3638
3650 uint8_t mpu9250_mag_iic_disable(mpu9250_handle_t *handle);
3651
3664 uint8_t mpu9250_mag_get_asa(mpu9250_handle_t *handle, uint8_t asa[3]);
3665
3677 uint8_t mpu9250_mag_set_fifo_mode(mpu9250_handle_t *handle);
3678
3703 uint8_t mpu9250_set_reg(mpu9250_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
3704
3718 uint8_t mpu9250_get_reg(mpu9250_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
3719
3728 #ifdef __cplusplus
3729 }
3730 #endif
3731
3732 #endif
mpu9250_get_addr_pin
uint8_t mpu9250_get_addr_pin(mpu9250_handle_t *handle, mpu9250_address_t *addr_pin)
get the chip address pin
Definition: driver_mpu9250.c:3985
mpu9250_set_accelerometer_z_test
uint8_t mpu9250_set_accelerometer_z_test(mpu9250_handle_t *handle, uint8_t data)
set the accelerometer z test
Definition: driver_mpu9250.c:9341
mpu9250_get_accel_compare_with_previous_sample
uint8_t mpu9250_get_accel_compare_with_previous_sample(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the accel compare with previous sample status
Definition: driver_mpu9250.c:8177
mpu9250_get_interrupt_pin_type
uint8_t mpu9250_get_interrupt_pin_type(mpu9250_handle_t *handle, mpu9250_pin_type_t *type)
get the interrupt pin type
Definition: driver_mpu9250.c:8425
mpu9250_set_accelerometer_low_pass_filter
uint8_t mpu9250_set_accelerometer_low_pass_filter(mpu9250_handle_t *handle, mpu9250_accelerometer_low_pass_filter_t filter)
set the accelerometer low pass filter
Definition: driver_mpu9250.c:7886
mpu9250_set_wake_on_motion
uint8_t mpu9250_set_wake_on_motion(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable wake on motion
Definition: driver_mpu9250.c:8050
mpu9250_set_accel_compare_with_previous_sample
uint8_t mpu9250_set_accel_compare_with_previous_sample(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable accel compare with previous sample
Definition: driver_mpu9250.c:8132
mpu9250_set_fifo_mode
uint8_t mpu9250_set_fifo_mode(mpu9250_handle_t *handle, mpu9250_fifo_mode mode)
set the fifo mode
Definition: driver_mpu9250.c:7249
mpu9250_get_iic_read_mode
uint8_t mpu9250_get_iic_read_mode(mpu9250_handle_t *handle, mpu9250_iic_read_mode_t *mode)
get the iic read mode
Definition: driver_mpu9250.c:10469
mpu9250_self_test
uint8_t mpu9250_self_test(mpu9250_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3])
run the self test
Definition: driver_mpu9250.c:10094
mpu9250_set_addr_pin
uint8_t mpu9250_set_addr_pin(mpu9250_handle_t *handle, mpu9250_address_t addr_pin)
set the chip address pin
Definition: driver_mpu9250.c:3964
mpu9250_set_accelerometer_z_offset
uint8_t mpu9250_set_accelerometer_z_offset(mpu9250_handle_t *handle, int16_t offset)
set the accelerometer z offset
Definition: driver_mpu9250.c:9561
mpu9250_get_interrupt_read_clear
uint8_t mpu9250_get_interrupt_read_clear(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the interrupt reading clear status
Definition: driver_mpu9250.c:8589
mpu9250_set_ptat
uint8_t mpu9250_set_ptat(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the temperature sensor
Definition: driver_mpu9250.c:6449
mpu9250_get_iic_master
uint8_t mpu9250_get_iic_master(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic master status
Definition: driver_mpu9250.c:5924
mpu9250_get_iic_enable
uint8_t mpu9250_get_iic_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t *enable)
get the iic status
Definition: driver_mpu9250.c:11533
mpu9250_get_iic4_enable
uint8_t mpu9250_get_iic4_enable(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic4 status
Definition: driver_mpu9250.c:12559
mpu9250_get_fsync_interrupt_level
uint8_t mpu9250_get_fsync_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t *level)
get the fsync interrupt level
Definition: driver_mpu9250.c:8671
mpu9250_set_fifo_enable
uint8_t mpu9250_set_fifo_enable(mpu9250_handle_t *handle, mpu9250_fifo_t fifo, mpu9250_bool_t enable)
enable or disable the fifo function
Definition: driver_mpu9250.c:8215
mpu9250_get_fifo_mode
uint8_t mpu9250_get_fifo_mode(mpu9250_handle_t *handle, mpu9250_fifo_mode *mode)
get the fifo mode
Definition: driver_mpu9250.c:7294
mpu9250_get_accelerometer_low_pass_filter
uint8_t mpu9250_get_accelerometer_low_pass_filter(mpu9250_handle_t *handle, mpu9250_accelerometer_low_pass_filter_t *filter)
get the accelerometer low pass filter
Definition: driver_mpu9250.c:7931
mpu9250_set_standby_mode
uint8_t mpu9250_set_standby_mode(mpu9250_handle_t *handle, mpu9250_source_t source, mpu9250_bool_t enable)
set source into standby mode
Definition: driver_mpu9250.c:6778
mpu9250_set_iic_wait_for_external_sensor
uint8_t mpu9250_set_iic_wait_for_external_sensor(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable iic wait for external sensor
Definition: driver_mpu9250.c:10342
mpu9250_get_gyro_z_offset
uint8_t mpu9250_get_gyro_z_offset(mpu9250_handle_t *handle, int16_t *offset)
get the gyro z offset
Definition: driver_mpu9250.c:9878
mpu9250_get_iic_mode
uint8_t mpu9250_get_iic_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_mode_t *mode)
get the iic mode
Definition: driver_mpu9250.c:10780
mpu9250_get_iic_bypass
uint8_t mpu9250_get_iic_bypass(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic bypass status
Definition: driver_mpu9250.c:8835
mpu9250_get_gyroscope_y_test
uint8_t mpu9250_get_gyroscope_y_test(mpu9250_handle_t *handle, uint8_t *data)
get the gyroscope y test
Definition: driver_mpu9250.c:9096
mpu9250_get_sample_rate_divider
uint8_t mpu9250_get_sample_rate_divider(mpu9250_handle_t *handle, uint8_t *d)
get the sample rate divider
Definition: driver_mpu9250.c:7050
mpu9250_set_cycle_wake_up
uint8_t mpu9250_set_cycle_wake_up(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the cycle wake up mode
Definition: driver_mpu9250.c:6531
mpu9250_set_accelerometer_y_test
uint8_t mpu9250_set_accelerometer_y_test(mpu9250_handle_t *handle, uint8_t data)
set the accelerometer y test
Definition: driver_mpu9250.c:9271
mpu9250_get_wake_on_motion
uint8_t mpu9250_get_wake_on_motion(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the wake on motion status
Definition: driver_mpu9250.c:8095
mpu9250_set_interrupt_latch
uint8_t mpu9250_set_interrupt_latch(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the interrupt latch
Definition: driver_mpu9250.c:8462
mpu9250_set_iic4_data_in
uint8_t mpu9250_set_iic4_data_in(mpu9250_handle_t *handle, uint8_t data)
set the iic4 data in
Definition: driver_mpu9250.c:12919
mpu9250_get_gyro_y_offset
uint8_t mpu9250_get_gyro_y_offset(mpu9250_handle_t *handle, int16_t *offset)
get the gyro y offset
Definition: driver_mpu9250.c:9803
mpu9250_accelerometer_range_t
mpu9250_accelerometer_range_t
mpu9250 accelerometer range enumeration definition
Definition: driver_mpu9250.h:211
mpu9250_get_accelerometer_z_offset
uint8_t mpu9250_get_accelerometer_z_offset(mpu9250_handle_t *handle, int16_t *offset)
get the accelerometer z offset
Definition: driver_mpu9250.c:9599
mpu9250_get_iic_byte_swap
uint8_t mpu9250_get_iic_byte_swap(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t *enable)
get the iic byte swap status
Definition: driver_mpu9250.c:11727
mpu9250_get_fifo_count
uint8_t mpu9250_get_fifo_count(mpu9250_handle_t *handle, uint16_t *count)
get the fifo counter value
Definition: driver_mpu9250.c:6861
mpu9250_get_iic_master_reset
uint8_t mpu9250_get_iic_master_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic master reset status
Definition: driver_mpu9250.c:6168
mpu9250_set_extern_sync
uint8_t mpu9250_set_extern_sync(mpu9250_handle_t *handle, mpu9250_extern_sync_t sync)
set the extern sync type
Definition: driver_mpu9250.c:7085
mpu9250_accelerometer_offset_convert_to_data
uint8_t mpu9250_accelerometer_offset_convert_to_data(mpu9250_handle_t *handle, int16_t reg, float *mg)
convert the register raw data to the accelerometer offset
Definition: driver_mpu9250.c:9663
mpu9250_get_iic4_interrupt
uint8_t mpu9250_get_iic4_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic4 interrupt status
Definition: driver_mpu9250.c:12641
mpu9250_fifo_get
uint8_t mpu9250_fifo_get(mpu9250_handle_t *handle, uint8_t *buf, uint16_t len)
fifo read bytes
Definition: driver_mpu9250.c:6899
mpu9250_get_accelerometer_test
uint8_t mpu9250_get_accelerometer_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t *enable)
get the accelerometer test
Definition: driver_mpu9250.c:7633
mpu9250_pin_type_t
mpu9250_pin_type_t
mpu9250 pin type enumeration definition
Definition: driver_mpu9250.h:253
mpu9250_set_gyro_standby
uint8_t mpu9250_set_gyro_standby(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the gyro standby
Definition: driver_mpu9250.c:6695
mpu9250_signal_path_reset_t
mpu9250_signal_path_reset_t
mpu9250 signal path reset enumeration definition
Definition: driver_mpu9250.h:113
mpu9250_set_iic_multi_master
uint8_t mpu9250_set_iic_multi_master(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable iic multi master
Definition: driver_mpu9250.c:10260
mpu9250_get_sleep
uint8_t mpu9250_get_sleep(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the sleep status
Definition: driver_mpu9250.c:6658
mpu9250_get_accelerometer_z_test
uint8_t mpu9250_get_accelerometer_z_test(mpu9250_handle_t *handle, uint8_t *data)
get the accelerometer z test
Definition: driver_mpu9250.c:9376
mpu9250_set_signal_path_reset
uint8_t mpu9250_set_signal_path_reset(mpu9250_handle_t *handle, mpu9250_signal_path_reset_t path)
set the signal path reset
Definition: driver_mpu9250.c:6970
mpu9250_get_accelerometer_range
uint8_t mpu9250_get_accelerometer_range(mpu9250_handle_t *handle, mpu9250_accelerometer_range_t *range)
get the accelerometer range
Definition: driver_mpu9250.c:7715
mpu9250_get_ptat
uint8_t mpu9250_get_ptat(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the temperature sensor status
Definition: driver_mpu9250.c:6494
mpu9250_get_iic_multi_master
uint8_t mpu9250_get_iic_multi_master(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic multi master status
Definition: driver_mpu9250.c:10305
mpu9250_iic_delay_t
mpu9250_iic_delay_t
mpu9250 iic delay enumeration definition
Definition: driver_mpu9250.h:371
mpu9250_get_iic_data_out
uint8_t mpu9250_get_iic_data_out(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *data)
get the iic data out
Definition: driver_mpu9250.c:11344
mpu9250_set_iic_transferred_len
uint8_t mpu9250_set_iic_transferred_len(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t len)
set the iic transferred length
Definition: driver_mpu9250.c:12197
mpu9250_fifo_reset
uint8_t mpu9250_fifo_reset(mpu9250_handle_t *handle)
reset the fifo
Definition: driver_mpu9250.c:6042
mpu9250_set_iic_read_mode
uint8_t mpu9250_set_iic_read_mode(mpu9250_handle_t *handle, mpu9250_iic_read_mode_t mode)
set the iic read mode
Definition: driver_mpu9250.c:10424
mpu9250_accelerometer_offset_convert_to_register
uint8_t mpu9250_accelerometer_offset_convert_to_register(mpu9250_handle_t *handle, float mg, int16_t *reg)
convert the accelerometer offset to the register raw data
Definition: driver_mpu9250.c:9636
mpu9250_get_sensor_reset
uint8_t mpu9250_get_sensor_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the sensor reset status
Definition: driver_mpu9250.c:6249
mpu9250_address_t
mpu9250_address_t
mpu9250 address enumeration definition
Definition: driver_mpu9250.h:72
mpu9250_gyroscope_range_t
mpu9250_gyroscope_range_t
mpu9250 gyroscope range enumeration definition
Definition: driver_mpu9250.h:200
mpu9250_set_iic4_data_out
uint8_t mpu9250_set_iic4_data_out(mpu9250_handle_t *handle, uint8_t data)
set the iic4 data out
Definition: driver_mpu9250.c:12849
mpu9250_set_iic_register
uint8_t mpu9250_set_iic_register(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t reg)
set the iic register
Definition: driver_mpu9250.c:11096
mpu9250_get_accelerometer_choice
uint8_t mpu9250_get_accelerometer_choice(mpu9250_handle_t *handle, uint8_t *choice)
get the accelerometer choice
Definition: driver_mpu9250.c:7849
mpu9250_set_iic_data_out
uint8_t mpu9250_set_iic_data_out(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t data)
set the iic data out
Definition: driver_mpu9250.c:11268
mpu9250_set_fsync_interrupt
uint8_t mpu9250_set_fsync_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the fsync interrupt
Definition: driver_mpu9250.c:8708
mpu9250_get_iic4_transaction_mode
uint8_t mpu9250_get_iic4_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic4_transaction_mode_t *mode)
get the iic4 transaction mode
Definition: driver_mpu9250.c:12723
mpu9250_get_interrupt
uint8_t mpu9250_get_interrupt(mpu9250_handle_t *handle, mpu9250_interrupt_t type, mpu9250_bool_t *enable)
get the interrupt status
Definition: driver_mpu9250.c:8919
mpu9250_set_accelerometer_y_offset
uint8_t mpu9250_set_accelerometer_y_offset(mpu9250_handle_t *handle, int16_t offset)
set the accelerometer y offset
Definition: driver_mpu9250.c:9486
mpu9250_motion_threshold_convert_to_data
uint8_t mpu9250_motion_threshold_convert_to_data(mpu9250_handle_t *handle, uint8_t reg, float *mg)
convert the register raw data to the motion threshold
Definition: driver_mpu9250.c:10066
mpu9250_set_iic_bypass
uint8_t mpu9250_set_iic_bypass(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the iic bypass
Definition: driver_mpu9250.c:8790
mpu9250_get_standby_mode
uint8_t mpu9250_get_standby_mode(mpu9250_handle_t *handle, mpu9250_source_t source, mpu9250_bool_t *enable)
get the source mode
Definition: driver_mpu9250.c:6824
mpu9250_get_clock_source
uint8_t mpu9250_get_clock_source(mpu9250_handle_t *handle, mpu9250_clock_source_t *clock_source)
get the chip clock source
Definition: driver_mpu9250.c:6412
mpu9250_info
uint8_t mpu9250_info(mpu9250_info_t *info)
get the chip's information
Definition: driver_mpu9250.c:13083
mpu9250_set_accelerometer_test
uint8_t mpu9250_set_accelerometer_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t enable)
set the accelerometer test
Definition: driver_mpu9250.c:7587
mpu9250_set_interrupt_level
uint8_t mpu9250_set_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t level)
set the interrupt level
Definition: driver_mpu9250.c:8298
mpu9250_set_gyroscope_x_test
uint8_t mpu9250_set_gyroscope_x_test(mpu9250_handle_t *handle, uint8_t data)
set the gyroscope x test
Definition: driver_mpu9250.c:8991
mpu9250_get_iic4_data_out
uint8_t mpu9250_get_iic4_data_out(mpu9250_handle_t *handle, uint8_t *data)
get the iic4 data out
Definition: driver_mpu9250.c:12884
mpu9250_set_interrupt_read_clear
uint8_t mpu9250_set_interrupt_read_clear(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the interrupt reading clear
Definition: driver_mpu9250.c:8544
mpu9250_get_extern_sync
uint8_t mpu9250_get_extern_sync(mpu9250_handle_t *handle, mpu9250_extern_sync_t *sync)
get the extern sync type
Definition: driver_mpu9250.c:7130
mpu9250_set_interface
uint8_t mpu9250_set_interface(mpu9250_handle_t *handle, mpu9250_interface_t interface)
set the chip interface
Definition: driver_mpu9250.c:3922
mpu9250_get_interface
uint8_t mpu9250_get_interface(mpu9250_handle_t *handle, mpu9250_interface_t *interface)
get the chip interface
Definition: driver_mpu9250.c:3943
mpu9250_iic_transaction_mode_t
mpu9250_iic_transaction_mode_t
mpu9250 iic transaction mode enumeration definition
Definition: driver_mpu9250.h:327
mpu9250_iic_slave_t
mpu9250_iic_slave_t
mpu9250 iic slave enumeration definition
Definition: driver_mpu9250.h:274
mpu9250_irq_handler
uint8_t mpu9250_irq_handler(mpu9250_handle_t *handle)
irq handler
Definition: driver_mpu9250.c:4668
mpu9250_set_gyroscope_y_test
uint8_t mpu9250_set_gyroscope_y_test(mpu9250_handle_t *handle, uint8_t data)
set the gyroscope y test
Definition: driver_mpu9250.c:9061
mpu9250_get_gyro_standby
uint8_t mpu9250_get_gyro_standby(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the gyro standby status
Definition: driver_mpu9250.c:6740
mpu9250_set_iic_mode
uint8_t mpu9250_set_iic_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_mode_t mode)
set the iic mode
Definition: driver_mpu9250.c:10648
mpu9250_interrupt_t
mpu9250_interrupt_t
mpu9250 interrupt enumeration definition
Definition: driver_mpu9250.h:262
mpu9250_get_gyroscope_x_test
uint8_t mpu9250_get_gyroscope_x_test(mpu9250_handle_t *handle, uint8_t *data)
get the gyroscope x test
Definition: driver_mpu9250.c:9026
mpu9250_get_fsync_interrupt
uint8_t mpu9250_get_fsync_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the fsync interrupt status
Definition: driver_mpu9250.c:8753
mpu9250_extern_sync_t
mpu9250_extern_sync_t
mpu9250 extern sync enumeration definition
Definition: driver_mpu9250.h:123
mpu9250_gyro_offset_convert_to_data
uint8_t mpu9250_gyro_offset_convert_to_data(mpu9250_handle_t *handle, int16_t reg, float *dps)
convert the register raw data to the gyro offset
Definition: driver_mpu9250.c:9942
mpu9250_sensor_reset
uint8_t mpu9250_sensor_reset(mpu9250_handle_t *handle)
reset all sensors
Definition: driver_mpu9250.c:6204
mpu9250_source_t
mpu9250_source_t
mpu9250 source enumeration definition
Definition: driver_mpu9250.h:90
mpu9250_set_iic_delay_enable
uint8_t mpu9250_set_iic_delay_enable(mpu9250_handle_t *handle, mpu9250_iic_delay_t delay, mpu9250_bool_t enable)
enable or disable the iic delay
Definition: driver_mpu9250.c:12431
mpu9250_info_t
struct mpu9250_info_s mpu9250_info_t
mpu9250 information structure definition
mpu9250_get_iic_transaction_mode
uint8_t mpu9250_get_iic_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_transaction_mode_t *mode)
get the iic transaction mode
Definition: driver_mpu9250.c:11921
mpu9250_interface_t
mpu9250_interface_t
mpu9250 interface enumeration definition
Definition: driver_mpu9250.h:63
mpu9250_bool_t
mpu9250_bool_t
mpu9250 bool enumeration definition
Definition: driver_mpu9250.h:81
mpu9250_set_iic_transaction_mode
uint8_t mpu9250_set_iic_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_transaction_mode_t mode)
set the iic transaction mode
Definition: driver_mpu9250.c:11808
mpu9250_get_accelerometer_y_test
uint8_t mpu9250_get_accelerometer_y_test(mpu9250_handle_t *handle, uint8_t *data)
get the accelerometer y test
Definition: driver_mpu9250.c:9306
mpu9250_set_gyro_y_offset
uint8_t mpu9250_set_gyro_y_offset(mpu9250_handle_t *handle, int16_t offset)
set the gyro y offset
Definition: driver_mpu9250.c:9765
mpu9250_get_gyroscope_z_test
uint8_t mpu9250_get_gyroscope_z_test(mpu9250_handle_t *handle, uint8_t *data)
get the gyroscope z test
Definition: driver_mpu9250.c:9166
mpu9250_set_interrupt
uint8_t mpu9250_set_interrupt(mpu9250_handle_t *handle, mpu9250_interrupt_t type, mpu9250_bool_t enable)
enable or disable the interrupt
Definition: driver_mpu9250.c:8873
mpu9250_get_accelerometer_x_test
uint8_t mpu9250_get_accelerometer_x_test(mpu9250_handle_t *handle, uint8_t *data)
get the accelerometer x test
Definition: driver_mpu9250.c:9236
mpu9250_set_motion_threshold
uint8_t mpu9250_set_motion_threshold(mpu9250_handle_t *handle, uint8_t threshold)
set the motion_threshold
Definition: driver_mpu9250.c:9969
mpu9250_iic_status_t
mpu9250_iic_status_t
mpu9250 iic status enumeration definition
Definition: driver_mpu9250.h:356
mpu9250_set_fsync_interrupt_level
uint8_t mpu9250_set_fsync_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t level)
set the fsync interrupt level
Definition: driver_mpu9250.c:8626
mpu9250_get_low_pass_filter
uint8_t mpu9250_get_low_pass_filter(mpu9250_handle_t *handle, mpu9250_low_pass_filter_t *filter)
get the low pass filter
Definition: driver_mpu9250.c:7212
mpu9250_get_interrupt_status
uint8_t mpu9250_get_interrupt_status(mpu9250_handle_t *handle, uint8_t *status)
get the interrupt status
Definition: driver_mpu9250.c:8956
mpu9250_set_gyroscope_choice
uint8_t mpu9250_set_gyroscope_choice(mpu9250_handle_t *handle, uint8_t choice)
set the gyroscope choice
Definition: driver_mpu9250.c:7498
mpu9250_set_iic_fifo_enable
uint8_t mpu9250_set_iic_fifo_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t enable)
enable or disable the iic fifo
Definition: driver_mpu9250.c:10508
mpu9250_deinit
uint8_t mpu9250_deinit(mpu9250_handle_t *handle)
close the chip
Definition: driver_mpu9250.c:4168
mpu9250_read
uint8_t mpu9250_read(mpu9250_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], int16_t(*mag_raw)[3], float(*mag_ut)[3], uint16_t *len)
read the data
Definition: driver_mpu9250.c:4223
mpu9250_handle_t
struct mpu9250_handle_s mpu9250_handle_t
mpu9250 handle structure definition
mpu9250_read_temperature
uint8_t mpu9250_read_temperature(mpu9250_handle_t *handle, int16_t(*raw), float *degrees)
read the temperature
Definition: driver_mpu9250.c:4631
mpu9250_get_accelerometer_y_offset
uint8_t mpu9250_get_accelerometer_y_offset(mpu9250_handle_t *handle, int16_t *offset)
get the accelerometer y offset
Definition: driver_mpu9250.c:9524
mpu9250_get_fifo_enable
uint8_t mpu9250_get_fifo_enable(mpu9250_handle_t *handle, mpu9250_fifo_t fifo, mpu9250_bool_t *enable)
get the fifo function status
Definition: driver_mpu9250.c:8261
mpu9250_set_fifo_1024kb
uint8_t mpu9250_set_fifo_1024kb(mpu9250_handle_t *handle)
set fifo 1024kb
Definition: driver_mpu9250.c:7751
mpu9250_get_gyroscope_range
uint8_t mpu9250_get_gyroscope_range(mpu9250_handle_t *handle, mpu9250_gyroscope_range_t *range)
get the gyroscope range
Definition: driver_mpu9250.c:7460
mpu9250_get_interrupt_level
uint8_t mpu9250_get_interrupt_level(mpu9250_handle_t *handle, mpu9250_pin_level_t *level)
get the interrupt level
Definition: driver_mpu9250.c:8343
mpu9250_motion_threshold_convert_to_register
uint8_t mpu9250_motion_threshold_convert_to_register(mpu9250_handle_t *handle, float mg, uint8_t *reg)
convert the motion threshold to the register raw data
Definition: driver_mpu9250.c:10039
mpu9250_set_low_pass_filter
uint8_t mpu9250_set_low_pass_filter(mpu9250_handle_t *handle, mpu9250_low_pass_filter_t filter)
set the low pass filter
Definition: driver_mpu9250.c:7167
mpu9250_set_gyroscope_test
uint8_t mpu9250_set_gyroscope_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t enable)
set the gyroscope test
Definition: driver_mpu9250.c:7332
mpu9250_set_clock_source
uint8_t mpu9250_set_clock_source(mpu9250_handle_t *handle, mpu9250_clock_source_t clock_source)
set the chip clock source
Definition: driver_mpu9250.c:6367
mpu9250_get_gyroscope_test
uint8_t mpu9250_get_gyroscope_test(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t *enable)
get the gyroscope test
Definition: driver_mpu9250.c:7378
mpu9250_device_reset
uint8_t mpu9250_device_reset(mpu9250_handle_t *handle)
reset the chip
Definition: driver_mpu9250.c:6285
mpu9250_set_low_power_accel_output_rate
uint8_t mpu9250_set_low_power_accel_output_rate(mpu9250_handle_t *handle, mpu9250_low_power_accel_output_rate_t rate)
set the low power accel output rate
Definition: driver_mpu9250.c:7968
mpu9250_get_cycle_wake_up
uint8_t mpu9250_get_cycle_wake_up(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the cycle wake up mode status
Definition: driver_mpu9250.c:6576
mpu9250_low_pass_filter_t
mpu9250_low_pass_filter_t
mpu9250 low pass filter enumeration definition
Definition: driver_mpu9250.h:138
mpu9250_get_iic_group_order
uint8_t mpu9250_get_iic_group_order(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_group_order_t *order)
get the iic group order
Definition: driver_mpu9250.c:12115
mpu9250_get_iic4_data_in
uint8_t mpu9250_get_iic4_data_in(mpu9250_handle_t *handle, uint8_t *data)
get the iic4 data in
Definition: driver_mpu9250.c:12954
mpu9250_set_iic_clock
uint8_t mpu9250_set_iic_clock(mpu9250_handle_t *handle, mpu9250_iic_clock_t clk)
set the iic clock
Definition: driver_mpu9250.c:10178
mpu9250_get_disable_iic_slave
uint8_t mpu9250_get_disable_iic_slave(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic slave status
Definition: driver_mpu9250.c:6006
mpu9250_get_iic_delay_enable
uint8_t mpu9250_get_iic_delay_enable(mpu9250_handle_t *handle, mpu9250_iic_delay_t delay, mpu9250_bool_t *enable)
get the iic delay status
Definition: driver_mpu9250.c:12477
mpu9250_set_disable_iic_slave
uint8_t mpu9250_set_disable_iic_slave(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the iic slave mode
Definition: driver_mpu9250.c:5961
mpu9250_get_iic_transferred_len
uint8_t mpu9250_get_iic_transferred_len(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *len)
get the iic transferred length
Definition: driver_mpu9250.c:12316
mpu9250_get_gyro_x_offset
uint8_t mpu9250_get_gyro_x_offset(mpu9250_handle_t *handle, int16_t *offset)
get the gyro x offset
Definition: driver_mpu9250.c:9728
mpu9250_set_iic_address
uint8_t mpu9250_set_iic_address(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t addr_7bit)
set the iic address
Definition: driver_mpu9250.c:10872
mpu9250_fifo_mode
mpu9250_fifo_mode
mpu9250 fifo mode enumeration definition
Definition: driver_mpu9250.h:234
mpu9250_low_power_accel_output_rate_t
mpu9250_low_power_accel_output_rate_t
mpu9250 low power accel output rate enumeration definition
Definition: driver_mpu9250.h:171
mpu9250_get_iic_status
uint8_t mpu9250_get_iic_status(mpu9250_handle_t *handle, uint8_t *status)
get the iic status
Definition: driver_mpu9250.c:12395
mpu9250_read_extern_sensor_data
uint8_t mpu9250_read_extern_sensor_data(mpu9250_handle_t *handle, uint8_t *data, uint8_t len)
read the extern sensor data
Definition: driver_mpu9250.c:12991
mpu9250_set_sample_rate_divider
uint8_t mpu9250_set_sample_rate_divider(mpu9250_handle_t *handle, uint8_t d)
set the sample rate divider
Definition: driver_mpu9250.c:7015
mpu9250_fifo_set
uint8_t mpu9250_fifo_set(mpu9250_handle_t *handle, uint8_t *buf, uint16_t len)
fifo write bytes
Definition: driver_mpu9250.c:6935
mpu9250_get_iic_fifo_enable
uint8_t mpu9250_get_iic_fifo_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t *enable)
get the iic fifo status
Definition: driver_mpu9250.c:10586
mpu9250_set_gyro_x_offset
uint8_t mpu9250_set_gyro_x_offset(mpu9250_handle_t *handle, int16_t offset)
set the gyro x offset
Definition: driver_mpu9250.c:9690
mpu9250_set_accelerometer_x_offset
uint8_t mpu9250_set_accelerometer_x_offset(mpu9250_handle_t *handle, int16_t offset)
set the accelerometer x offset
Definition: driver_mpu9250.c:9411
mpu9250_iic_read_mode_t
mpu9250_iic_read_mode_t
mpu9250 iic read mode enumeration definition
Definition: driver_mpu9250.h:309
mpu9250_set_accelerometer_x_test
uint8_t mpu9250_set_accelerometer_x_test(mpu9250_handle_t *handle, uint8_t data)
set the accelerometer x test
Definition: driver_mpu9250.c:9201
mpu9250_set_fifo
uint8_t mpu9250_set_fifo(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable fifo
Definition: driver_mpu9250.c:5763
mpu9250_get_fifo_reset
uint8_t mpu9250_get_fifo_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the fifo reset status
Definition: driver_mpu9250.c:6087
mpu9250_init
uint8_t mpu9250_init(mpu9250_handle_t *handle)
initialize the chip
Definition: driver_mpu9250.c:4009
mpu9250_set_iic_enable
uint8_t mpu9250_set_iic_enable(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t enable)
enable or disable the iic
Definition: driver_mpu9250.c:11420
mpu9250_get_iic_delay
uint8_t mpu9250_get_iic_delay(mpu9250_handle_t *handle, uint8_t *delay)
get the iic delay
Definition: driver_mpu9250.c:12812
mpu9250_iic4_transaction_mode_t
mpu9250_iic4_transaction_mode_t
mpu9250 iic4 transaction mode enumeration definition
Definition: driver_mpu9250.h:336
mpu9250_set_iic_delay
uint8_t mpu9250_set_iic_delay(mpu9250_handle_t *handle, uint8_t delay)
set the iic delay
Definition: driver_mpu9250.c:12761
mpu9250_set_accelerometer_choice
uint8_t mpu9250_set_accelerometer_choice(mpu9250_handle_t *handle, uint8_t choice)
set the accelerometer choice
Definition: driver_mpu9250.c:7797
mpu9250_iic_clock_t
mpu9250_iic_clock_t
mpu9250 iic clock enumeration definition
Definition: driver_mpu9250.h:286
mpu9250_set_iic4_interrupt
uint8_t mpu9250_set_iic4_interrupt(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the iic4 interrupt
Definition: driver_mpu9250.c:12596
mpu9250_set_gyroscope_range
uint8_t mpu9250_set_gyroscope_range(mpu9250_handle_t *handle, mpu9250_gyroscope_range_t range)
set the gyroscope range
Definition: driver_mpu9250.c:7415
mpu9250_iic_group_order_t
mpu9250_iic_group_order_t
mpu9250 iic group order enumeration definition
Definition: driver_mpu9250.h:345
mpu9250_iic_master_reset
uint8_t mpu9250_iic_master_reset(mpu9250_handle_t *handle)
reset the iic master controller
Definition: driver_mpu9250.c:6123
mpu9250_get_device_reset
uint8_t mpu9250_get_device_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the device reset status
Definition: driver_mpu9250.c:6330
mpu9250_get_accelerometer_x_offset
uint8_t mpu9250_get_accelerometer_x_offset(mpu9250_handle_t *handle, int16_t *offset)
get the accelerometer x offset
Definition: driver_mpu9250.c:9449
mpu9250_set_iic_byte_swap
uint8_t mpu9250_set_iic_byte_swap(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_bool_t enable)
enable or disable the iic byte swap
Definition: driver_mpu9250.c:11614
mpu9250_set_gyro_z_offset
uint8_t mpu9250_set_gyro_z_offset(mpu9250_handle_t *handle, int16_t offset)
set the gyro z offset
Definition: driver_mpu9250.c:9840
mpu9250_set_interrupt_pin_type
uint8_t mpu9250_set_interrupt_pin_type(mpu9250_handle_t *handle, mpu9250_pin_type_t type)
set the interrupt pin type
Definition: driver_mpu9250.c:8380
mpu9250_get_fifo
uint8_t mpu9250_get_fifo(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the fifo status
Definition: driver_mpu9250.c:5808
mpu9250_set_iic4_transaction_mode
uint8_t mpu9250_set_iic4_transaction_mode(mpu9250_handle_t *handle, mpu9250_iic4_transaction_mode_t mode)
set the iic4 transaction mode
Definition: driver_mpu9250.c:12678
mpu9250_get_interrupt_latch
uint8_t mpu9250_get_interrupt_latch(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the interrupt latch status
Definition: driver_mpu9250.c:8507
mpu9250_get_gyroscope_choice
uint8_t mpu9250_get_gyroscope_choice(mpu9250_handle_t *handle, uint8_t *choice)
get the gyroscope choice
Definition: driver_mpu9250.c:7549
mpu9250_set_gyroscope_z_test
uint8_t mpu9250_set_gyroscope_z_test(mpu9250_handle_t *handle, uint8_t data)
set the gyroscope z test
Definition: driver_mpu9250.c:9131
mpu9250_set_iic_master
uint8_t mpu9250_set_iic_master(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the iic master mode
Definition: driver_mpu9250.c:5879
mpu9250_get_iic_register
uint8_t mpu9250_get_iic_register(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *reg)
get the iic register
Definition: driver_mpu9250.c:11182
mpu9250_set_accelerometer_range
uint8_t mpu9250_set_accelerometer_range(mpu9250_handle_t *handle, mpu9250_accelerometer_range_t range)
set the accelerometer range
Definition: driver_mpu9250.c:7670
mpu9250_gyro_offset_convert_to_register
uint8_t mpu9250_gyro_offset_convert_to_register(mpu9250_handle_t *handle, float dps, int16_t *reg)
convert the gyro offset to the register raw data
Definition: driver_mpu9250.c:9915
mpu9250_get_iic_wait_for_external_sensor
uint8_t mpu9250_get_iic_wait_for_external_sensor(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
get the iic wait for external sensor status
Definition: driver_mpu9250.c:10387
mpu9250_iic_mode_t
mpu9250_iic_mode_t
mpu9250 iic mode enumeration definition
Definition: driver_mpu9250.h:318
mpu9250_axis_t
mpu9250_axis_t
mpu9250 axis enumeration definition
Definition: driver_mpu9250.h:190
mpu9250_get_iic_clock
uint8_t mpu9250_get_iic_clock(mpu9250_handle_t *handle, mpu9250_iic_clock_t *clk)
get the iic clock
Definition: driver_mpu9250.c:10223
mpu9250_accelerometer_low_pass_filter_t
mpu9250_accelerometer_low_pass_filter_t
mpu9250 accelerometer low pass filter enumeration definition
Definition: driver_mpu9250.h:155
mpu9250_set_iic_group_order
uint8_t mpu9250_set_iic_group_order(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, mpu9250_iic_group_order_t order)
set the iic group order
Definition: driver_mpu9250.c:12002
mpu9250_get_motion_threshold
uint8_t mpu9250_get_motion_threshold(mpu9250_handle_t *handle, uint8_t *threshold)
get the motion_threshold
Definition: driver_mpu9250.c:10004
mpu9250_set_sleep
uint8_t mpu9250_set_sleep(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the sleep mode
Definition: driver_mpu9250.c:6613
mpu9250_get_iic_address
uint8_t mpu9250_get_iic_address(mpu9250_handle_t *handle, mpu9250_iic_slave_t slave, uint8_t *addr_7bit)
get the iic address
Definition: driver_mpu9250.c:11004
mpu9250_get_low_power_accel_output_rate
uint8_t mpu9250_get_low_power_accel_output_rate(mpu9250_handle_t *handle, mpu9250_low_power_accel_output_rate_t *rate)
get the low power accel output rate
Definition: driver_mpu9250.c:8013
mpu9250_set_iic4_enable
uint8_t mpu9250_set_iic4_enable(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the iic4
Definition: driver_mpu9250.c:12514
mpu9250_pin_level_t
mpu9250_pin_level_t
mpu9250 pin level enumeration definition
Definition: driver_mpu9250.h:244
mpu9250_fifo_t
mpu9250_fifo_t
mpu9250 fifo enumeration definition
Definition: driver_mpu9250.h:222
mpu9250_clock_source_t
mpu9250_clock_source_t
mpu9250 clock source enumeration definition
Definition: driver_mpu9250.h:103
mpu9250_force_fifo_reset
uint8_t mpu9250_force_fifo_reset(mpu9250_handle_t *handle)
force reset the fifo
Definition: driver_mpu9250.c:5844
MPU9250_ACCELEROMETER_RANGE_4G
@ MPU9250_ACCELEROMETER_RANGE_4G
Definition: driver_mpu9250.h:213
MPU9250_ACCELEROMETER_RANGE_2G
@ MPU9250_ACCELEROMETER_RANGE_2G
Definition: driver_mpu9250.h:212
MPU9250_ACCELEROMETER_RANGE_16G
@ MPU9250_ACCELEROMETER_RANGE_16G
Definition: driver_mpu9250.h:215
MPU9250_ACCELEROMETER_RANGE_8G
@ MPU9250_ACCELEROMETER_RANGE_8G
Definition: driver_mpu9250.h:214
MPU9250_PIN_TYPE_PUSH_PULL
@ MPU9250_PIN_TYPE_PUSH_PULL
Definition: driver_mpu9250.h:254
MPU9250_PIN_TYPE_OPEN_DRAIN
@ MPU9250_PIN_TYPE_OPEN_DRAIN
Definition: driver_mpu9250.h:255
MPU9250_SIGNAL_PATH_RESET_TEMP
@ MPU9250_SIGNAL_PATH_RESET_TEMP
Definition: driver_mpu9250.h:114
MPU9250_SIGNAL_PATH_RESET_ACCEL
@ MPU9250_SIGNAL_PATH_RESET_ACCEL
Definition: driver_mpu9250.h:115
MPU9250_SIGNAL_PATH_RESET_GYRO
@ MPU9250_SIGNAL_PATH_RESET_GYRO
Definition: driver_mpu9250.h:116
MPU9250_IIC_DELAY_ES_SHADOW
@ MPU9250_IIC_DELAY_ES_SHADOW
Definition: driver_mpu9250.h:372
MPU9250_IIC_DELAY_SLAVE_2
@ MPU9250_IIC_DELAY_SLAVE_2
Definition: driver_mpu9250.h:376
MPU9250_IIC_DELAY_SLAVE_0
@ MPU9250_IIC_DELAY_SLAVE_0
Definition: driver_mpu9250.h:378
MPU9250_IIC_DELAY_SLAVE_1
@ MPU9250_IIC_DELAY_SLAVE_1
Definition: driver_mpu9250.h:377
MPU9250_IIC_DELAY_SLAVE_3
@ MPU9250_IIC_DELAY_SLAVE_3
Definition: driver_mpu9250.h:375
MPU9250_IIC_DELAY_SLAVE_4
@ MPU9250_IIC_DELAY_SLAVE_4
Definition: driver_mpu9250.h:374
MPU9250_ADDRESS_AD0_LOW
@ MPU9250_ADDRESS_AD0_LOW
Definition: driver_mpu9250.h:73
MPU9250_ADDRESS_AD0_HIGH
@ MPU9250_ADDRESS_AD0_HIGH
Definition: driver_mpu9250.h:74
MPU9250_GYROSCOPE_RANGE_2000DPS
@ MPU9250_GYROSCOPE_RANGE_2000DPS
Definition: driver_mpu9250.h:204
MPU9250_GYROSCOPE_RANGE_250DPS
@ MPU9250_GYROSCOPE_RANGE_250DPS
Definition: driver_mpu9250.h:201
MPU9250_GYROSCOPE_RANGE_500DPS
@ MPU9250_GYROSCOPE_RANGE_500DPS
Definition: driver_mpu9250.h:202
MPU9250_GYROSCOPE_RANGE_1000DPS
@ MPU9250_GYROSCOPE_RANGE_1000DPS
Definition: driver_mpu9250.h:203
MPU9250_IIC_TRANSACTION_MODE_REG_DATA
@ MPU9250_IIC_TRANSACTION_MODE_REG_DATA
Definition: driver_mpu9250.h:329
MPU9250_IIC_TRANSACTION_MODE_DATA
@ MPU9250_IIC_TRANSACTION_MODE_DATA
Definition: driver_mpu9250.h:328
MPU9250_IIC_SLAVE_3
@ MPU9250_IIC_SLAVE_3
Definition: driver_mpu9250.h:278
MPU9250_IIC_SLAVE_2
@ MPU9250_IIC_SLAVE_2
Definition: driver_mpu9250.h:277
MPU9250_IIC_SLAVE_4
@ MPU9250_IIC_SLAVE_4
Definition: driver_mpu9250.h:279
MPU9250_IIC_SLAVE_0
@ MPU9250_IIC_SLAVE_0
Definition: driver_mpu9250.h:275
MPU9250_IIC_SLAVE_1
@ MPU9250_IIC_SLAVE_1
Definition: driver_mpu9250.h:276
MPU9250_INTERRUPT_MOTION
@ MPU9250_INTERRUPT_MOTION
Definition: driver_mpu9250.h:263
MPU9250_INTERRUPT_DATA_READY
@ MPU9250_INTERRUPT_DATA_READY
Definition: driver_mpu9250.h:267
MPU9250_INTERRUPT_FSYNC_INT
@ MPU9250_INTERRUPT_FSYNC_INT
Definition: driver_mpu9250.h:265
MPU9250_INTERRUPT_DMP
@ MPU9250_INTERRUPT_DMP
Definition: driver_mpu9250.h:266
MPU9250_INTERRUPT_FIFO_OVERFLOW
@ MPU9250_INTERRUPT_FIFO_OVERFLOW
Definition: driver_mpu9250.h:264
MPU9250_EXTERN_SYNC_GYRO_YOUT_L
@ MPU9250_EXTERN_SYNC_GYRO_YOUT_L
Definition: driver_mpu9250.h:127
MPU9250_EXTERN_SYNC_ACCEL_XOUT_L
@ MPU9250_EXTERN_SYNC_ACCEL_XOUT_L
Definition: driver_mpu9250.h:129
MPU9250_EXTERN_SYNC_TEMP_OUT_L
@ MPU9250_EXTERN_SYNC_TEMP_OUT_L
Definition: driver_mpu9250.h:125
MPU9250_EXTERN_SYNC_ACCEL_ZOUT_L
@ MPU9250_EXTERN_SYNC_ACCEL_ZOUT_L
Definition: driver_mpu9250.h:131
MPU9250_EXTERN_SYNC_GYRO_ZOUT_L
@ MPU9250_EXTERN_SYNC_GYRO_ZOUT_L
Definition: driver_mpu9250.h:128
MPU9250_EXTERN_SYNC_ACCEL_YOUT_L
@ MPU9250_EXTERN_SYNC_ACCEL_YOUT_L
Definition: driver_mpu9250.h:130
MPU9250_EXTERN_SYNC_INPUT_DISABLED
@ MPU9250_EXTERN_SYNC_INPUT_DISABLED
Definition: driver_mpu9250.h:124
MPU9250_EXTERN_SYNC_GYRO_XOUT_L
@ MPU9250_EXTERN_SYNC_GYRO_XOUT_L
Definition: driver_mpu9250.h:126
MPU9250_SOURCE_GYRO_X
@ MPU9250_SOURCE_GYRO_X
Definition: driver_mpu9250.h:94
MPU9250_SOURCE_ACC_Z
@ MPU9250_SOURCE_ACC_Z
Definition: driver_mpu9250.h:93
MPU9250_SOURCE_GYRO_Y
@ MPU9250_SOURCE_GYRO_Y
Definition: driver_mpu9250.h:95
MPU9250_SOURCE_GYRO_Z
@ MPU9250_SOURCE_GYRO_Z
Definition: driver_mpu9250.h:96
MPU9250_SOURCE_ACC_X
@ MPU9250_SOURCE_ACC_X
Definition: driver_mpu9250.h:91
MPU9250_SOURCE_ACC_Y
@ MPU9250_SOURCE_ACC_Y
Definition: driver_mpu9250.h:92
MPU9250_INTERFACE_SPI
@ MPU9250_INTERFACE_SPI
Definition: driver_mpu9250.h:65
MPU9250_INTERFACE_IIC
@ MPU9250_INTERFACE_IIC
Definition: driver_mpu9250.h:64
MPU9250_BOOL_TRUE
@ MPU9250_BOOL_TRUE
Definition: driver_mpu9250.h:83
MPU9250_BOOL_FALSE
@ MPU9250_BOOL_FALSE
Definition: driver_mpu9250.h:82
MPU9250_IIC_STATUS_IIC_SLV0_NACK
@ MPU9250_IIC_STATUS_IIC_SLV0_NACK
Definition: driver_mpu9250.h:364
MPU9250_IIC_STATUS_IIC_SLV1_NACK
@ MPU9250_IIC_STATUS_IIC_SLV1_NACK
Definition: driver_mpu9250.h:363
MPU9250_IIC_STATUS_IIC_SLV4_NACK
@ MPU9250_IIC_STATUS_IIC_SLV4_NACK
Definition: driver_mpu9250.h:360
MPU9250_IIC_STATUS_IIC_SLV2_NACK
@ MPU9250_IIC_STATUS_IIC_SLV2_NACK
Definition: driver_mpu9250.h:362
MPU9250_IIC_STATUS_IIC_LOST_ARB
@ MPU9250_IIC_STATUS_IIC_LOST_ARB
Definition: driver_mpu9250.h:359
MPU9250_IIC_STATUS_IIC_SLV4_DONE
@ MPU9250_IIC_STATUS_IIC_SLV4_DONE
Definition: driver_mpu9250.h:358
MPU9250_IIC_STATUS_IIC_SLV3_NACK
@ MPU9250_IIC_STATUS_IIC_SLV3_NACK
Definition: driver_mpu9250.h:361
MPU9250_IIC_STATUS_PASS_THROUGH
@ MPU9250_IIC_STATUS_PASS_THROUGH
Definition: driver_mpu9250.h:357
MPU9250_LOW_PASS_FILTER_3
@ MPU9250_LOW_PASS_FILTER_3
Definition: driver_mpu9250.h:144
MPU9250_LOW_PASS_FILTER_4
@ MPU9250_LOW_PASS_FILTER_4
Definition: driver_mpu9250.h:145
MPU9250_LOW_PASS_FILTER_5
@ MPU9250_LOW_PASS_FILTER_5
Definition: driver_mpu9250.h:146
MPU9250_LOW_PASS_FILTER_2
@ MPU9250_LOW_PASS_FILTER_2
Definition: driver_mpu9250.h:143
MPU9250_LOW_PASS_FILTER_7
@ MPU9250_LOW_PASS_FILTER_7
Definition: driver_mpu9250.h:148
MPU9250_LOW_PASS_FILTER_6
@ MPU9250_LOW_PASS_FILTER_6
Definition: driver_mpu9250.h:147
MPU9250_LOW_PASS_FILTER_1
@ MPU9250_LOW_PASS_FILTER_1
Definition: driver_mpu9250.h:142
MPU9250_LOW_PASS_FILTER_0
@ MPU9250_LOW_PASS_FILTER_0
Definition: driver_mpu9250.h:141
MPU9250_FIFO_MODE_NORMAL
@ MPU9250_FIFO_MODE_NORMAL
Definition: driver_mpu9250.h:237
MPU9250_FIFO_MODE_STREAM
@ MPU9250_FIFO_MODE_STREAM
Definition: driver_mpu9250.h:235
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P98
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P98
Definition: driver_mpu9250.h:174
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_31P25
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_31P25
Definition: driver_mpu9250.h:179
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_125
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_125
Definition: driver_mpu9250.h:181
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_3P91
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_3P91
Definition: driver_mpu9250.h:176
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_7P81
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_7P81
Definition: driver_mpu9250.h:177
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_1P95
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_1P95
Definition: driver_mpu9250.h:175
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_250
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_250
Definition: driver_mpu9250.h:182
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P24
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P24
Definition: driver_mpu9250.h:172
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P49
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_0P49
Definition: driver_mpu9250.h:173
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_500
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_500
Definition: driver_mpu9250.h:183
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_62P50
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_62P50
Definition: driver_mpu9250.h:180
MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_15P63
@ MPU9250_LOW_POWER_ACCEL_OUTPUT_RATE_15P63
Definition: driver_mpu9250.h:178
MPU9250_IIC_READ_MODE_RESTART
@ MPU9250_IIC_READ_MODE_RESTART
Definition: driver_mpu9250.h:310
MPU9250_IIC_READ_MODE_STOP_AND_START
@ MPU9250_IIC_READ_MODE_STOP_AND_START
Definition: driver_mpu9250.h:311
MPU9250_IIC4_TRANSACTION_MODE_DATA
@ MPU9250_IIC4_TRANSACTION_MODE_DATA
Definition: driver_mpu9250.h:337
MPU9250_IIC4_TRANSACTION_MODE_REG
@ MPU9250_IIC4_TRANSACTION_MODE_REG
Definition: driver_mpu9250.h:338
MPU9250_IIC_CLOCK_471_KHZ
@ MPU9250_IIC_CLOCK_471_KHZ
Definition: driver_mpu9250.h:297
MPU9250_IIC_CLOCK_267_KHZ
@ MPU9250_IIC_CLOCK_267_KHZ
Definition: driver_mpu9250.h:294
MPU9250_IIC_CLOCK_348_KHZ
@ MPU9250_IIC_CLOCK_348_KHZ
Definition: driver_mpu9250.h:287
MPU9250_IIC_CLOCK_333_KHZ
@ MPU9250_IIC_CLOCK_333_KHZ
Definition: driver_mpu9250.h:288
MPU9250_IIC_CLOCK_296_KHZ
@ MPU9250_IIC_CLOCK_296_KHZ
Definition: driver_mpu9250.h:291
MPU9250_IIC_CLOCK_276_KHZ
@ MPU9250_IIC_CLOCK_276_KHZ
Definition: driver_mpu9250.h:293
MPU9250_IIC_CLOCK_444_KHZ
@ MPU9250_IIC_CLOCK_444_KHZ
Definition: driver_mpu9250.h:298
MPU9250_IIC_CLOCK_364_KHZ
@ MPU9250_IIC_CLOCK_364_KHZ
Definition: driver_mpu9250.h:302
MPU9250_IIC_CLOCK_421_KHZ
@ MPU9250_IIC_CLOCK_421_KHZ
Definition: driver_mpu9250.h:299
MPU9250_IIC_CLOCK_286_KHZ
@ MPU9250_IIC_CLOCK_286_KHZ
Definition: driver_mpu9250.h:292
MPU9250_IIC_CLOCK_500_KHZ
@ MPU9250_IIC_CLOCK_500_KHZ
Definition: driver_mpu9250.h:296
MPU9250_IIC_CLOCK_320_KHZ
@ MPU9250_IIC_CLOCK_320_KHZ
Definition: driver_mpu9250.h:289
MPU9250_IIC_CLOCK_308_KHZ
@ MPU9250_IIC_CLOCK_308_KHZ
Definition: driver_mpu9250.h:290
MPU9250_IIC_CLOCK_258_KHZ
@ MPU9250_IIC_CLOCK_258_KHZ
Definition: driver_mpu9250.h:295
MPU9250_IIC_CLOCK_381_KHZ
@ MPU9250_IIC_CLOCK_381_KHZ
Definition: driver_mpu9250.h:301
MPU9250_IIC_CLOCK_400_KHZ
@ MPU9250_IIC_CLOCK_400_KHZ
Definition: driver_mpu9250.h:300
MPU9250_IIC_GROUP_ORDER_EVEN
@ MPU9250_IIC_GROUP_ORDER_EVEN
Definition: driver_mpu9250.h:346
MPU9250_IIC_GROUP_ORDER_ODD
@ MPU9250_IIC_GROUP_ORDER_ODD
Definition: driver_mpu9250.h:348
MPU9250_IIC_MODE_READ
@ MPU9250_IIC_MODE_READ
Definition: driver_mpu9250.h:320
MPU9250_IIC_MODE_WRITE
@ MPU9250_IIC_MODE_WRITE
Definition: driver_mpu9250.h:319
MPU9250_AXIS_X
@ MPU9250_AXIS_X
Definition: driver_mpu9250.h:193
MPU9250_AXIS_Z
@ MPU9250_AXIS_Z
Definition: driver_mpu9250.h:191
MPU9250_AXIS_Y
@ MPU9250_AXIS_Y
Definition: driver_mpu9250.h:192
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_6
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_6
Definition: driver_mpu9250.h:163
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_1
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_1
Definition: driver_mpu9250.h:158
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_3
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_3
Definition: driver_mpu9250.h:160
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_4
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_4
Definition: driver_mpu9250.h:161
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_2
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_2
Definition: driver_mpu9250.h:159
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_5
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_5
Definition: driver_mpu9250.h:162
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_0
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_0
Definition: driver_mpu9250.h:157
MPU9250_ACCELEROMETER_LOW_PASS_FILTER_7
@ MPU9250_ACCELEROMETER_LOW_PASS_FILTER_7
Definition: driver_mpu9250.h:164
MPU9250_PIN_LEVEL_HIGH
@ MPU9250_PIN_LEVEL_HIGH
Definition: driver_mpu9250.h:245
MPU9250_PIN_LEVEL_LOW
@ MPU9250_PIN_LEVEL_LOW
Definition: driver_mpu9250.h:246
MPU9250_FIFO_XG
@ MPU9250_FIFO_XG
Definition: driver_mpu9250.h:224
MPU9250_FIFO_YG
@ MPU9250_FIFO_YG
Definition: driver_mpu9250.h:225
MPU9250_FIFO_ZG
@ MPU9250_FIFO_ZG
Definition: driver_mpu9250.h:226
MPU9250_FIFO_ACCEL
@ MPU9250_FIFO_ACCEL
Definition: driver_mpu9250.h:227
MPU9250_FIFO_TEMP
@ MPU9250_FIFO_TEMP
Definition: driver_mpu9250.h:223
MPU9250_CLOCK_SOURCE_PLL
@ MPU9250_CLOCK_SOURCE_PLL
Definition: driver_mpu9250.h:105
MPU9250_CLOCK_SOURCE_STOP_CLOCK
@ MPU9250_CLOCK_SOURCE_STOP_CLOCK
Definition: driver_mpu9250.h:106
MPU9250_CLOCK_SOURCE_INTERNAL_20MHZ
@ MPU9250_CLOCK_SOURCE_INTERNAL_20MHZ
Definition: driver_mpu9250.h:104
mpu9250_dmp_feature_t
mpu9250_dmp_feature_t
mpu9250 dmp feature enumeration definition
Definition: driver_mpu9250.h:453
mpu9250_dmp_set_accel_bias
uint8_t mpu9250_dmp_set_accel_bias(mpu9250_handle_t *handle, int32_t bias[3])
dmp set the accel bias
Definition: driver_mpu9250.c:2289
mpu9250_dmp_set_tap_callback
uint8_t mpu9250_dmp_set_tap_callback(mpu9250_handle_t *handle, void(*callback)(uint8_t count, uint8_t direction))
dmp set the tap callback
Definition: driver_mpu9250.c:3699
mpu9250_dmp_get_fifo_rate
uint8_t mpu9250_dmp_get_fifo_rate(mpu9250_handle_t *handle, uint16_t *rate)
dmp get the fifo rate
Definition: driver_mpu9250.c:3004
mpu9250_dmp_set_gyro_bias
uint8_t mpu9250_dmp_set_gyro_bias(mpu9250_handle_t *handle, int32_t bias[3])
dmp set the gyro bias
Definition: driver_mpu9250.c:2199
mpu9250_dmp_set_shake_reject_timeout
uint8_t mpu9250_dmp_set_shake_reject_timeout(mpu9250_handle_t *handle, uint16_t ms)
dmp set the shake reject timeout
Definition: driver_mpu9250.c:1352
mpu9250_dmp_get_pedometer_walk_time
uint8_t mpu9250_dmp_get_pedometer_walk_time(mpu9250_handle_t *handle, uint32_t *ms)
dmp get the pedometer walk time
Definition: driver_mpu9250.c:1214
mpu9250_dmp_get_tap_time_multi
uint8_t mpu9250_dmp_get_tap_time_multi(mpu9250_handle_t *handle, uint16_t *ms)
dmp get max time between taps to register as a multi tap
Definition: driver_mpu9250.c:1681
mpu9250_dmp_set_6x_quaternion
uint8_t mpu9250_dmp_set_6x_quaternion(mpu9250_handle_t *handle, mpu9250_bool_t enable)
dmp enable or disable generate 6 axis quaternions from dmp
Definition: driver_mpu9250.c:2053
mpu9250_dmp_set_orientation
uint8_t mpu9250_dmp_set_orientation(mpu9250_handle_t *handle, int8_t mat[9])
dmp set the orientation
Definition: driver_mpu9250.c:2392
mpu9250_dmp_orient_t
mpu9250_dmp_orient_t
mpu9250 dmp orient enumeration definition
Definition: driver_mpu9250.h:482
mpu9250_dmp_set_fifo_rate
uint8_t mpu9250_dmp_set_fifo_rate(mpu9250_handle_t *handle, uint16_t rate)
dmp set the fifo rate
Definition: driver_mpu9250.c:2938
mpu9250_dmp_load_firmware
uint8_t mpu9250_dmp_load_firmware(mpu9250_handle_t *handle)
load the dmp firmware
Definition: driver_mpu9250.c:1087
mpu9250_dmp_set_3x_quaternion
uint8_t mpu9250_dmp_set_3x_quaternion(mpu9250_handle_t *handle, mpu9250_bool_t enable)
dmp enable or disable generate 3 axis quaternions from dmp
Definition: driver_mpu9250.c:1976
mpu9250_dmp_set_tap_axes
uint8_t mpu9250_dmp_set_tap_axes(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t enable)
dmp enable or disable the tap axes
Definition: driver_mpu9250.c:3051
mpu9250_dmp_get_tap_axes
uint8_t mpu9250_dmp_get_tap_axes(mpu9250_handle_t *handle, mpu9250_axis_t axis, mpu9250_bool_t *enable)
dmp get the tap axes status
Definition: driver_mpu9250.c:3112
mpu9250_dmp_set_enable
uint8_t mpu9250_dmp_set_enable(mpu9250_handle_t *handle, mpu9250_bool_t enable)
enable or disable the dmp
Definition: driver_mpu9250.c:3767
mpu9250_dmp_set_feature
uint8_t mpu9250_dmp_set_feature(mpu9250_handle_t *handle, uint16_t mask)
dmp enable or disable the dmp feature
Definition: driver_mpu9250.c:2496
mpu9250_dmp_set_shake_reject_thresh
uint8_t mpu9250_dmp_set_shake_reject_thresh(mpu9250_handle_t *handle, uint16_t dps)
dmp set the shake reject thresh
Definition: driver_mpu9250.c:1536
mpu9250_dmp_set_orient_callback
uint8_t mpu9250_dmp_set_orient_callback(mpu9250_handle_t *handle, void(*callback)(uint8_t orientation))
dmp set the orient callback
Definition: driver_mpu9250.c:3733
mpu9250_dmp_set_interrupt_mode
uint8_t mpu9250_dmp_set_interrupt_mode(mpu9250_handle_t *handle, mpu9250_dmp_interrupt_mode_t mode)
dmp set the interrupt mode
Definition: driver_mpu9250.c:2130
mpu9250_dmp_get_shake_reject_time
uint8_t mpu9250_dmp_get_shake_reject_time(mpu9250_handle_t *handle, uint16_t *ms)
dmp get the shake reject time
Definition: driver_mpu9250.c:1491
mpu9250_dmp_get_pedometer_step_count
uint8_t mpu9250_dmp_get_pedometer_step_count(mpu9250_handle_t *handle, uint32_t *count)
dmp get the pedometer step count
Definition: driver_mpu9250.c:1307
mpu9250_dmp_set_pedometer_step_count
uint8_t mpu9250_dmp_set_pedometer_step_count(mpu9250_handle_t *handle, uint32_t count)
dmp set the pedometer step count
Definition: driver_mpu9250.c:1259
mpu9250_dmp_get_tap_thresh
uint8_t mpu9250_dmp_get_tap_thresh(mpu9250_handle_t *handle, mpu9250_axis_t axis, uint16_t *mg_ms)
dmp get the tap thresh
Definition: driver_mpu9250.c:3313
mpu9250_dmp_set_shake_reject_time
uint8_t mpu9250_dmp_set_shake_reject_time(mpu9250_handle_t *handle, uint16_t ms)
dmp set the shake reject time
Definition: driver_mpu9250.c:1444
mpu9250_dmp_get_min_tap_count
uint8_t mpu9250_dmp_get_min_tap_count(mpu9250_handle_t *handle, uint8_t *cnt)
dmp get the min tap count
Definition: driver_mpu9250.c:1869
mpu9250_dmp_get_tap_time
uint8_t mpu9250_dmp_get_tap_time(mpu9250_handle_t *handle, uint16_t *ms)
dmp get the tap time
Definition: driver_mpu9250.c:1773
mpu9250_dmp_interrupt_mode_t
mpu9250_dmp_interrupt_mode_t
mpu9250 dmp interrupt mode enumeration definition
Definition: driver_mpu9250.h:444
mpu9250_dmp_set_gyro_calibrate
uint8_t mpu9250_dmp_set_gyro_calibrate(mpu9250_handle_t *handle, mpu9250_bool_t enable)
dmp enable or disable gyro calibrate
Definition: driver_mpu9250.c:1913
mpu9250_dmp_get_shake_reject_timeout
uint8_t mpu9250_dmp_get_shake_reject_timeout(mpu9250_handle_t *handle, uint16_t *ms)
dmp get the shake reject timeout
Definition: driver_mpu9250.c:1399
mpu9250_dmp_gyro_accel_raw_offset_convert
uint8_t mpu9250_dmp_gyro_accel_raw_offset_convert(mpu9250_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3], int32_t gyro_offset[3], int32_t accel_offset[3])
dmp gyro accel raw offset convert
Definition: driver_mpu9250.c:3822
mpu9250_dmp_set_tap_time
uint8_t mpu9250_dmp_set_tap_time(mpu9250_handle_t *handle, uint16_t ms)
dmp set the tap time
Definition: driver_mpu9250.c:1726
mpu9250_dmp_set_tap_thresh
uint8_t mpu9250_dmp_set_tap_thresh(mpu9250_handle_t *handle, mpu9250_axis_t axis, uint16_t mg_ms)
dmp set the tap thresh
Definition: driver_mpu9250.c:3168
mpu9250_dmp_set_min_tap_count
uint8_t mpu9250_dmp_set_min_tap_count(mpu9250_handle_t *handle, uint8_t cnt)
dmp set the min tap count
Definition: driver_mpu9250.c:1819
mpu9250_dmp_set_pedometer_walk_time
uint8_t mpu9250_dmp_set_pedometer_walk_time(mpu9250_handle_t *handle, uint32_t ms)
dmp set the pedometer walk time
Definition: driver_mpu9250.c:1165
mpu9250_dmp_read
uint8_t mpu9250_dmp_read(mpu9250_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], int32_t(*quat)[4], float *pitch, float *roll, float *yaw, uint16_t *l)
dmp read the data
Definition: driver_mpu9250.c:3429
mpu9250_dmp_set_tap_time_multi
uint8_t mpu9250_dmp_set_tap_time_multi(mpu9250_handle_t *handle, uint16_t ms)
dmp set max time between taps to register as a multi tap
Definition: driver_mpu9250.c:1634
mpu9250_dmp_tap_t
mpu9250_dmp_tap_t
mpu9250 dmp tap enumeration definition
Definition: driver_mpu9250.h:469
mpu9250_dmp_get_shake_reject_thresh
uint8_t mpu9250_dmp_get_shake_reject_thresh(mpu9250_handle_t *handle, uint16_t *dps)
dmp get the shake reject thresh
Definition: driver_mpu9250.c:1586
MPU9250_DMP_FEATURE_6X_QUAT
@ MPU9250_DMP_FEATURE_6X_QUAT
Definition: driver_mpu9250.h:458
MPU9250_DMP_FEATURE_3X_QUAT
@ MPU9250_DMP_FEATURE_3X_QUAT
Definition: driver_mpu9250.h:456
MPU9250_DMP_FEATURE_GYRO_CAL
@ MPU9250_DMP_FEATURE_GYRO_CAL
Definition: driver_mpu9250.h:459
MPU9250_DMP_FEATURE_PEDOMETER
@ MPU9250_DMP_FEATURE_PEDOMETER
Definition: driver_mpu9250.h:457
MPU9250_DMP_FEATURE_SEND_CAL_GYRO
@ MPU9250_DMP_FEATURE_SEND_CAL_GYRO
Definition: driver_mpu9250.h:462
MPU9250_DMP_FEATURE_SEND_RAW_ACCEL
@ MPU9250_DMP_FEATURE_SEND_RAW_ACCEL
Definition: driver_mpu9250.h:460
MPU9250_DMP_FEATURE_TAP
@ MPU9250_DMP_FEATURE_TAP
Definition: driver_mpu9250.h:454
MPU9250_DMP_FEATURE_SEND_RAW_GYRO
@ MPU9250_DMP_FEATURE_SEND_RAW_GYRO
Definition: driver_mpu9250.h:461
MPU9250_DMP_FEATURE_ORIENT
@ MPU9250_DMP_FEATURE_ORIENT
Definition: driver_mpu9250.h:455
MPU9250_DMP_ORIENT_REVERSE_PORTRAIT
@ MPU9250_DMP_ORIENT_REVERSE_PORTRAIT
Definition: driver_mpu9250.h:485
MPU9250_DMP_ORIENT_REVERSE_LANDSCAPE
@ MPU9250_DMP_ORIENT_REVERSE_LANDSCAPE
Definition: driver_mpu9250.h:486
MPU9250_DMP_ORIENT_PORTRAIT
@ MPU9250_DMP_ORIENT_PORTRAIT
Definition: driver_mpu9250.h:483
MPU9250_DMP_ORIENT_LANDSCAPE
@ MPU9250_DMP_ORIENT_LANDSCAPE
Definition: driver_mpu9250.h:484
MPU9250_DMP_INTERRUPT_MODE_CONTINUOUS
@ MPU9250_DMP_INTERRUPT_MODE_CONTINUOUS
Definition: driver_mpu9250.h:445
MPU9250_DMP_INTERRUPT_MODE_GESTURE
@ MPU9250_DMP_INTERRUPT_MODE_GESTURE
Definition: driver_mpu9250.h:446
MPU9250_DMP_TAP_X_DOWN
@ MPU9250_DMP_TAP_X_DOWN
Definition: driver_mpu9250.h:471
MPU9250_DMP_TAP_X_UP
@ MPU9250_DMP_TAP_X_UP
Definition: driver_mpu9250.h:470
MPU9250_DMP_TAP_Y_DOWN
@ MPU9250_DMP_TAP_Y_DOWN
Definition: driver_mpu9250.h:473
MPU9250_DMP_TAP_Z_UP
@ MPU9250_DMP_TAP_Z_UP
Definition: driver_mpu9250.h:474
MPU9250_DMP_TAP_Z_DOWN
@ MPU9250_DMP_TAP_Z_DOWN
Definition: driver_mpu9250.h:475
MPU9250_DMP_TAP_Y_UP
@ MPU9250_DMP_TAP_Y_UP
Definition: driver_mpu9250.h:472
mpu9250_set_reg
uint8_t mpu9250_set_reg(mpu9250_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
Definition: driver_mpu9250.c:13034
mpu9250_get_reg
uint8_t mpu9250_get_reg(mpu9250_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
Definition: driver_mpu9250.c:13061
mpu9250_mag_get_status1
uint8_t mpu9250_mag_get_status1(mpu9250_handle_t *handle, uint8_t *status)
magnetometer get the status1
Definition: driver_mpu9250.c:5102
mpu9250_magnetometer_bits_t
mpu9250_magnetometer_bits_t
mpu9250 magnetometer bits enumeration definition
Definition: driver_mpu9250.h:426
mpu9250_mag_get_status2
uint8_t mpu9250_mag_get_status2(mpu9250_handle_t *handle, uint8_t *status)
magnetometer get the status2
Definition: driver_mpu9250.c:5144
mpu9250_mag_set_mode
uint8_t mpu9250_mag_set_mode(mpu9250_handle_t *handle, mpu9250_magnetometer_mode_t mode)
magnetometer set the mode
Definition: driver_mpu9250.c:5186
mpu9250_magnetometer_status2_t
mpu9250_magnetometer_status2_t
mpu9250 magnetometer status2 enumeration definition
Definition: driver_mpu9250.h:403
mpu9250_mag_iic_disable
uint8_t mpu9250_mag_iic_disable(mpu9250_handle_t *handle)
magnetometer disable the iic
Definition: driver_mpu9250.c:5569
mpu9250_mag_get_mode
uint8_t mpu9250_mag_get_mode(mpu9250_handle_t *handle, mpu9250_magnetometer_mode_t *mode)
magnetometer get the mode
Definition: driver_mpu9250.c:5238
mpu9250_mag_get_self_test
uint8_t mpu9250_mag_get_self_test(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
magnetometer get the self test status
Definition: driver_mpu9250.c:5526
mpu9250_mag_get_bits
uint8_t mpu9250_mag_get_bits(mpu9250_handle_t *handle, mpu9250_magnetometer_bits_t *bits)
magnetometer get the bits
Definition: driver_mpu9250.c:5334
mpu9250_mag_set_bits
uint8_t mpu9250_mag_set_bits(mpu9250_handle_t *handle, mpu9250_magnetometer_bits_t bits)
magnetometer set the bits
Definition: driver_mpu9250.c:5282
mpu9250_magnetometer_mode_t
mpu9250_magnetometer_mode_t
mpu9250 magnetometer mode enumeration definition
Definition: driver_mpu9250.h:412
mpu9250_mag_set_reset
uint8_t mpu9250_mag_set_reset(mpu9250_handle_t *handle, mpu9250_bool_t enable)
magnetometer enable or disable reset
Definition: driver_mpu9250.c:5378
mpu9250_mag_get_info
uint8_t mpu9250_mag_get_info(mpu9250_handle_t *handle, uint8_t *info)
magnetometer get the information
Definition: driver_mpu9250.c:5060
mpu9250_mag_get_asa
uint8_t mpu9250_mag_get_asa(mpu9250_handle_t *handle, uint8_t asa[3])
magnetometer get the asa data
Definition: driver_mpu9250.c:5613
mpu9250_mag_get_reset
uint8_t mpu9250_mag_get_reset(mpu9250_handle_t *handle, mpu9250_bool_t *enable)
magnetometer get the reset status
Definition: driver_mpu9250.c:5430
mpu9250_mag_init
uint8_t mpu9250_mag_init(mpu9250_handle_t *handle)
initialize the magnetometer of mpu9250
Definition: driver_mpu9250.c:4742
mpu9250_mag_deinit
uint8_t mpu9250_mag_deinit(mpu9250_handle_t *handle)
magnetometer deinit
Definition: driver_mpu9250.c:4894
mpu9250_mag_set_fifo_mode
uint8_t mpu9250_mag_set_fifo_mode(mpu9250_handle_t *handle)
magnetometer set into fifo mode
Definition: driver_mpu9250.c:5654
mpu9250_mag_set_self_test
uint8_t mpu9250_mag_set_self_test(mpu9250_handle_t *handle, mpu9250_bool_t enable)
magnetometer enable or disable self test
Definition: driver_mpu9250.c:5474
mpu9250_magnetometer_status1_t
mpu9250_magnetometer_status1_t
mpu9250 magnetometer status1 enumeration definition
Definition: driver_mpu9250.h:394
mpu9250_mag_read
uint8_t mpu9250_mag_read(mpu9250_handle_t *handle, int16_t mag_raw[3], float mag_ut[3])
mag read the data
Definition: driver_mpu9250.c:4995
MPU9250_MAGNETOMETER_BITS_16
@ MPU9250_MAGNETOMETER_BITS_16
Definition: driver_mpu9250.h:428
MPU9250_MAGNETOMETER_BITS_14
@ MPU9250_MAGNETOMETER_BITS_14
Definition: driver_mpu9250.h:427
MPU9250_MAGNETOMETER_STATUS2_BITM
@ MPU9250_MAGNETOMETER_STATUS2_BITM
Definition: driver_mpu9250.h:405
MPU9250_MAGNETOMETER_STATUS2_HOFL
@ MPU9250_MAGNETOMETER_STATUS2_HOFL
Definition: driver_mpu9250.h:404
MPU9250_MAGNETOMETER_MODE_CONTINUOUS1
@ MPU9250_MAGNETOMETER_MODE_CONTINUOUS1
Definition: driver_mpu9250.h:415
MPU9250_MAGNETOMETER_MODE_SELF_TEST
@ MPU9250_MAGNETOMETER_MODE_SELF_TEST
Definition: driver_mpu9250.h:418
MPU9250_MAGNETOMETER_MODE_EXT_TRIGGER
@ MPU9250_MAGNETOMETER_MODE_EXT_TRIGGER
Definition: driver_mpu9250.h:417
MPU9250_MAGNETOMETER_MODE_SINGLE
@ MPU9250_MAGNETOMETER_MODE_SINGLE
Definition: driver_mpu9250.h:414
MPU9250_MAGNETOMETER_MODE_POWER_DOWN
@ MPU9250_MAGNETOMETER_MODE_POWER_DOWN
Definition: driver_mpu9250.h:413
MPU9250_MAGNETOMETER_MODE_FUSE_ROM
@ MPU9250_MAGNETOMETER_MODE_FUSE_ROM
Definition: driver_mpu9250.h:419
MPU9250_MAGNETOMETER_MODE_CONTINUOUS2
@ MPU9250_MAGNETOMETER_MODE_CONTINUOUS2
Definition: driver_mpu9250.h:416
MPU9250_MAGNETOMETER_STATUS1_DOR
@ MPU9250_MAGNETOMETER_STATUS1_DOR
Definition: driver_mpu9250.h:396
MPU9250_MAGNETOMETER_STATUS1_DRDY
@ MPU9250_MAGNETOMETER_STATUS1_DRDY
Definition: driver_mpu9250.h:395
mpu9250_handle_s
mpu9250 handle structure definition
Definition: driver_mpu9250.h:502
mpu9250_handle_s::iic_spi
uint8_t iic_spi
Definition: driver_mpu9250.h:520
mpu9250_handle_s::buf
uint8_t buf[1024]
Definition: driver_mpu9250.h:524
mpu9250_handle_s::dmp_inited
uint8_t dmp_inited
Definition: driver_mpu9250.h:521
mpu9250_handle_s::inited
uint8_t inited
Definition: driver_mpu9250.h:517
mpu9250_handle_s::dmp_tap_callback
void(* dmp_tap_callback)(uint8_t count, uint8_t direction)
Definition: driver_mpu9250.h:515
mpu9250_handle_s::spi_init
uint8_t(* spi_init)(void)
Definition: driver_mpu9250.h:508
mpu9250_handle_s::delay_ms
void(* delay_ms)(uint32_t ms)
Definition: driver_mpu9250.h:512
mpu9250_handle_s::spi_read
uint8_t(* spi_read)(uint8_t reg, uint8_t *buf, uint16_t len)
Definition: driver_mpu9250.h:510
mpu9250_handle_s::receive_callback
void(* receive_callback)(uint8_t type)
Definition: driver_mpu9250.h:514
mpu9250_handle_s::spi_write
uint8_t(* spi_write)(uint8_t reg, uint8_t *buf, uint16_t len)
Definition: driver_mpu9250.h:511
mpu9250_handle_s::mag_asa
uint8_t mag_asa[3]
Definition: driver_mpu9250.h:519
mpu9250_handle_s::mag_inited
uint8_t mag_inited
Definition: driver_mpu9250.h:518
mpu9250_handle_s::debug_print
void(* debug_print)(const char *const fmt,...)
Definition: driver_mpu9250.h:513
mpu9250_handle_s::mask
uint16_t mask
Definition: driver_mpu9250.h:523
mpu9250_handle_s::iic_init
uint8_t(* iic_init)(void)
Definition: driver_mpu9250.h:504
mpu9250_handle_s::spi_deinit
uint8_t(* spi_deinit)(void)
Definition: driver_mpu9250.h:509
mpu9250_handle_s::orient
uint16_t orient
Definition: driver_mpu9250.h:522
mpu9250_handle_s::dmp_orient_callback
void(* dmp_orient_callback)(uint8_t orientation)
Definition: driver_mpu9250.h:516
mpu9250_handle_s::iic_write
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
Definition: driver_mpu9250.h:507
mpu9250_handle_s::iic_addr
uint8_t iic_addr
Definition: driver_mpu9250.h:503
mpu9250_handle_s::iic_read
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
Definition: driver_mpu9250.h:506
mpu9250_handle_s::iic_deinit
uint8_t(* iic_deinit)(void)
Definition: driver_mpu9250.h:505
mpu9250_info_s
mpu9250 information structure definition
Definition: driver_mpu9250.h:531
mpu9250_info_s::temperature_max
float temperature_max
Definition: driver_mpu9250.h:539
mpu9250_info_s::supply_voltage_max_v
float supply_voltage_max_v
Definition: driver_mpu9250.h:536
mpu9250_info_s::driver_version
uint32_t driver_version
Definition: driver_mpu9250.h:540
mpu9250_info_s::temperature_min
float temperature_min
Definition: driver_mpu9250.h:538
mpu9250_info_s::max_current_ma
float max_current_ma
Definition: driver_mpu9250.h:537
mpu9250_info_s::manufacturer_name
char manufacturer_name[32]
Definition: driver_mpu9250.h:533
mpu9250_info_s::supply_voltage_min_v
float supply_voltage_min_v
Definition: driver_mpu9250.h:535
mpu9250_info_s::interface
char interface[8]
Definition: driver_mpu9250.h:534
mpu9250_info_s::chip_name
char chip_name[32]
Definition: driver_mpu9250.h:532