LibDriver MPU6500
Loading...
Searching...
No Matches
driver_mpu6500_fifo_test.c
Go to the documentation of this file.
1
36
38
39static mpu6500_handle_t gs_handle;
40static int16_t gs_accel_raw[80][3];
41static float gs_accel_g[80][3];
42static int16_t gs_gyro_raw[80][3];
43static float gs_gyro_dps[80][3];
44static uint16_t gs_len;
45
54{
55 if (mpu6500_irq_handler(&gs_handle) != 0)
56 {
57 return 1;
58 }
59
60 return 0;
61}
62
73uint8_t mpu6500_fifo_test(mpu6500_interface_t interface, mpu6500_address_t addr, uint32_t times)
74{
75 uint8_t res;
76 uint32_t i;
77 mpu6500_info_t info;
78
79 /* link interface function */
92
93 /* get information */
94 res = mpu6500_info(&info);
95 if (res != 0)
96 {
97 mpu6500_interface_debug_print("mpu6500: get info failed.\n");
98
99 return 1;
100 }
101 else
102 {
103 /* print chip info */
104 mpu6500_interface_debug_print("mpu6500: chip is %s.\n", info.chip_name);
105 mpu6500_interface_debug_print("mpu6500: manufacturer is %s.\n", info.manufacturer_name);
106 mpu6500_interface_debug_print("mpu6500: interface is %s.\n", info.interface);
107 mpu6500_interface_debug_print("mpu6500: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
108 mpu6500_interface_debug_print("mpu6500: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
109 mpu6500_interface_debug_print("mpu6500: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
110 mpu6500_interface_debug_print("mpu6500: max current is %0.2fmA.\n", info.max_current_ma);
111 mpu6500_interface_debug_print("mpu6500: max temperature is %0.1fC.\n", info.temperature_max);
112 mpu6500_interface_debug_print("mpu6500: min temperature is %0.1fC.\n", info.temperature_min);
113 }
114
115 /* start fifo test */
116 mpu6500_interface_debug_print("mpu6500: start fifo test.\n");
117
118 /* set the interface */
119 res = mpu6500_set_interface(&gs_handle, interface);
120 if (res != 0)
121 {
122 mpu6500_interface_debug_print("mpu6500: set interface failed.\n");
123
124 return 1;
125 }
126
127 /* set the addr pin */
128 res = mpu6500_set_addr_pin(&gs_handle, addr);
129 if (res != 0)
130 {
131 mpu6500_interface_debug_print("mpu6500: set addr pin failed.\n");
132
133 return 1;
134 }
135
136 /* init */
137 res = mpu6500_init(&gs_handle);
138 if (res != 0)
139 {
140 mpu6500_interface_debug_print("mpu6500: init failed.\n");
141
142 return 1;
143 }
144
145 /* delay 100 ms */
147
148 /* disable sleep */
149 res = mpu6500_set_sleep(&gs_handle, MPU6500_BOOL_FALSE);
150 if (res != 0)
151 {
152 mpu6500_interface_debug_print("mpu6500: set sleep failed.\n");
153 (void)mpu6500_deinit(&gs_handle);
154
155 return 1;
156 }
157
158 /* if spi interface, disable iic interface */
159 if (interface == MPU6500_INTERFACE_SPI)
160 {
161 /* disable iic */
163 if (res != 0)
164 {
165 mpu6500_interface_debug_print("mpu6500: set disable iic slave failed.\n");
166 (void)mpu6500_deinit(&gs_handle);
167
168 return 1;
169 }
170 }
171
172 /* set fifo 1024kb */
173 res = mpu6500_set_fifo_1024kb(&gs_handle);
174 if (res != 0)
175 {
176 mpu6500_interface_debug_print("mpu6500: set fifo 1024kb failed.\n");
177 (void)mpu6500_deinit(&gs_handle);
178
179 return 1;
180 }
181
182 /* set pll */
184 if (res != 0)
185 {
186 mpu6500_interface_debug_print("mpu6500: set clock source failed.\n");
187 (void)mpu6500_deinit(&gs_handle);
188
189 return 1;
190 }
191
192 /* set 50Hz */
193 res = mpu6500_set_sample_rate_divider(&gs_handle, (1000 / 50) - 1);
194 if (res != 0)
195 {
196 mpu6500_interface_debug_print("mpu6500: set sample rate divider failed.\n");
197 (void)mpu6500_deinit(&gs_handle);
198
199 return 1;
200 }
201
202 /* ±2g */
204 if (res != 0)
205 {
206 mpu6500_interface_debug_print("mpu6500: set accelerometer range failed.\n");
207 (void)mpu6500_deinit(&gs_handle);
208
209 return 1;
210 }
211
212 /* ±2000dps */
214 if (res != 0)
215 {
216 mpu6500_interface_debug_print("mpu6500: set gyroscope range failed.\n");
217 (void)mpu6500_deinit(&gs_handle);
218
219 return 1;
220 }
221
222 /* enable temperature sensor */
223 res = mpu6500_set_ptat(&gs_handle, MPU6500_BOOL_TRUE);
224 if (res != 0)
225 {
226 mpu6500_interface_debug_print("mpu6500: set ptat failed.\n");
227 (void)mpu6500_deinit(&gs_handle);
228
229 return 1;
230 }
231
232 /* disable cycle wake up */
234 if (res != 0)
235 {
236 mpu6500_interface_debug_print("mpu6500: set cycle wake up failed.\n");
237 (void)mpu6500_deinit(&gs_handle);
238
239 return 1;
240 }
241
242 /* enable acc x */
244 if (res != 0)
245 {
246 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
247 (void)mpu6500_deinit(&gs_handle);
248
249 return 1;
250 }
251
252 /* enable acc y */
254 if (res != 0)
255 {
256 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
257 (void)mpu6500_deinit(&gs_handle);
258
259 return 1;
260 }
261
262 /* enable acc z */
264 if (res != 0)
265 {
266 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
267 (void)mpu6500_deinit(&gs_handle);
268
269 return 1;
270 }
271
272 /* enable gyro x */
274 if (res != 0)
275 {
276 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
277 (void)mpu6500_deinit(&gs_handle);
278
279 return 1;
280 }
281
282 /* enable gyro y */
284 if (res != 0)
285 {
286 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
287 (void)mpu6500_deinit(&gs_handle);
288
289 return 1;
290 }
291
292 /* enable gyro z */
294 if (res != 0)
295 {
296 mpu6500_interface_debug_print("mpu6500: set standby mode failed.\n");
297 (void)mpu6500_deinit(&gs_handle);
298
299 return 1;
300 }
301
302 /* disable gyroscope x test */
304 if (res != 0)
305 {
306 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
307 (void)mpu6500_deinit(&gs_handle);
308
309 return 1;
310 }
311
312 /* disable gyroscope y test */
314 if (res != 0)
315 {
316 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
317 (void)mpu6500_deinit(&gs_handle);
318
319 return 1;
320 }
321
322 /* disable gyroscope z test */
324 if (res != 0)
325 {
326 mpu6500_interface_debug_print("mpu6500: set gyroscope test failed.\n");
327 (void)mpu6500_deinit(&gs_handle);
328
329 return 1;
330 }
331
332 /* disable accelerometer x test */
334 if (res != 0)
335 {
336 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
337 (void)mpu6500_deinit(&gs_handle);
338
339 return 1;
340 }
341
342 /* disable accelerometer y test */
344 if (res != 0)
345 {
346 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
347 (void)mpu6500_deinit(&gs_handle);
348
349 return 1;
350 }
351
352 /* disable accelerometer z test */
354 if (res != 0)
355 {
356 mpu6500_interface_debug_print("mpu6500: set accelerometer test failed.\n");
357 (void)mpu6500_deinit(&gs_handle);
358
359 return 1;
360 }
361
362 /* disable temp fifo */
364 if (res != 0)
365 {
366 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
367 (void)mpu6500_deinit(&gs_handle);
368
369 return 1;
370 }
371
372 /* enable xg fifo */
374 if (res != 0)
375 {
376 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
377 (void)mpu6500_deinit(&gs_handle);
378
379 return 1;
380 }
381
382 /* enable yg fifo */
384 if (res != 0)
385 {
386 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
387 (void)mpu6500_deinit(&gs_handle);
388
389 return 1;
390 }
391
392 /* enable zg fifo */
394 if (res != 0)
395 {
396 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
397 (void)mpu6500_deinit(&gs_handle);
398
399 return 1;
400 }
401
402 /* enable accel fifo */
404 if (res != 0)
405 {
406 mpu6500_interface_debug_print("mpu6500: set fifo enable failed.\n");
407 (void)mpu6500_deinit(&gs_handle);
408
409 return 1;
410 }
411
412 /* set interrupt level low */
414 if (res != 0)
415 {
416 mpu6500_interface_debug_print("mpu6500: set interrupt level failed.\n");
417 (void)mpu6500_deinit(&gs_handle);
418
419 return 1;
420 }
421
422 /* push-pull */
424 if (res != 0)
425 {
426 mpu6500_interface_debug_print("mpu6500: set interrupt pin type failed.\n");
427 (void)mpu6500_deinit(&gs_handle);
428
429 return 1;
430 }
431
432 /* disable motion */
434 if (res != 0)
435 {
436 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
437 (void)mpu6500_deinit(&gs_handle);
438
439 return 1;
440 }
441
442 /* enable fifo overflow */
444 if (res != 0)
445 {
446 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
447 (void)mpu6500_deinit(&gs_handle);
448
449 return 1;
450 }
451
452 /* disable dmp interrupt */
454 if (res != 0)
455 {
456 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
457 (void)mpu6500_deinit(&gs_handle);
458
459 return 1;
460 }
461
462 /* disable fsync int */
464 if (res != 0)
465 {
466 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
467 (void)mpu6500_deinit(&gs_handle);
468
469 return 1;
470 }
471
472 /* disable data ready */
474 if (res != 0)
475 {
476 mpu6500_interface_debug_print("mpu6500: set interrupt failed.\n");
477 (void)mpu6500_deinit(&gs_handle);
478
479 return 1;
480 }
481
482 /* enable latch */
484 if (res != 0)
485 {
486 mpu6500_interface_debug_print("mpu6500: set interrupt latch failed.\n");
487 (void)mpu6500_deinit(&gs_handle);
488
489 return 1;
490 }
491
492 /* enable interrupt read clear */
494 if (res != 0)
495 {
496 mpu6500_interface_debug_print("mpu6500: set interrupt read clear failed.\n");
497 (void)mpu6500_deinit(&gs_handle);
498
499 return 1;
500 }
501
502 /* disable sync input */
504 if (res != 0)
505 {
506 mpu6500_interface_debug_print("mpu6500: set extern sync failed.\n");
507 (void)mpu6500_deinit(&gs_handle);
508
509 return 1;
510 }
511
512 /* disable fsync interrupt */
514 if (res != 0)
515 {
516 mpu6500_interface_debug_print("mpu6500: set fsync interrupt failed.\n");
517 (void)mpu6500_deinit(&gs_handle);
518
519 return 1;
520 }
521
522 /* fsync interrupt level low */
524 if (res != 0)
525 {
526 mpu6500_interface_debug_print("mpu6500: set fsync interrupt level failed.\n");
527 (void)mpu6500_deinit(&gs_handle);
528
529 return 1;
530 }
531
532 /* disable iic master */
534 if (res != 0)
535 {
536 mpu6500_interface_debug_print("mpu6500: set iic master failed.\n");
537 (void)mpu6500_deinit(&gs_handle);
538
539 return 1;
540 }
541
542 /* disable iic bypass */
544 if (res != 0)
545 {
546 mpu6500_interface_debug_print("mpu6500: set iic bypass failed.\n");
547 (void)mpu6500_deinit(&gs_handle);
548
549 return 1;
550 }
551
552 /* disable gyro standby */
554 if (res != 0)
555 {
556 mpu6500_interface_debug_print("mpu6500: set gyro standby failed.\n");
557 (void)mpu6500_deinit(&gs_handle);
558
559 return 1;
560 }
561
562 /* set the fifo normal mode */
564 if (res != 0)
565 {
566 mpu6500_interface_debug_print("mpu6500: set fifo mode failed.\n");
567 (void)mpu6500_deinit(&gs_handle);
568
569 return 1;
570 }
571
572 /* set gyroscope choice 0 */
573 res = mpu6500_set_gyroscope_choice(&gs_handle, 0);
574 if (res != 0)
575 {
576 mpu6500_interface_debug_print("mpu6500: set gyroscope choice failed.\n");
577 (void)mpu6500_deinit(&gs_handle);
578
579 return 1;
580 }
581
582 /* set low pass filter 3 */
584 if (res != 0)
585 {
586 mpu6500_interface_debug_print("mpu6500: set low pass filter failed.\n");
587 (void)mpu6500_deinit(&gs_handle);
588
589 return 1;
590 }
591
592 /* set accelerometer choice 0 */
593 res = mpu6500_set_accelerometer_choice(&gs_handle, 0);
594 if (res != 0)
595 {
596 mpu6500_interface_debug_print("mpu6500: set accelerometer choice failed.\n");
597 (void)mpu6500_deinit(&gs_handle);
598
599 return 1;
600 }
601
602 /* set accelerometer low pass filter 3 */
604 if (res != 0)
605 {
606 mpu6500_interface_debug_print("mpu6500: set accelerometer low pass filter failed.\n");
607 (void)mpu6500_deinit(&gs_handle);
608
609 return 1;
610 }
611
612 /* set low power accel output rate 62.5Hz */
614 if (res != 0)
615 {
616 mpu6500_interface_debug_print("mpu6500: set low power accel output rate failed.\n");
617 (void)mpu6500_deinit(&gs_handle);
618
619 return 1;
620 }
621
622 /* disable wake on motion */
624 if (res != 0)
625 {
626 mpu6500_interface_debug_print("mpu6500: set wake on motion failed.\n");
627 (void)mpu6500_deinit(&gs_handle);
628
629 return 1;
630 }
631
632 /* enable accel compare with previous sample */
634 if (res != 0)
635 {
636 mpu6500_interface_debug_print("mpu6500: set accel compare with previous sample failed.\n");
637 (void)mpu6500_deinit(&gs_handle);
638
639 return 1;
640 }
641
642 /* enable fifo */
643 res = mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_TRUE);
644 if (res != 0)
645 {
646 mpu6500_interface_debug_print("mpu6500: set fifo failed.\n");
647 (void)mpu6500_deinit(&gs_handle);
648
649 return 1;
650 }
651
652 /* force reset the fifo */
653 res = mpu6500_force_fifo_reset(&gs_handle);
654 if (res != 0)
655 {
656 mpu6500_interface_debug_print("mpu6500: force fifo reset failed.\n");
657 (void)mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_FALSE);
658 (void)mpu6500_deinit(&gs_handle);
659
660 return 1;
661 }
662
663 /* delay 1000 ms */
665
666 for (i = 0; i < times; i++)
667 {
668 /* read data */
669 gs_len = 80;
670 res = mpu6500_read(&gs_handle, gs_accel_raw, gs_accel_g, gs_gyro_raw, gs_gyro_dps, &gs_len);
671 if (res != 0)
672 {
673 mpu6500_interface_debug_print("mpu6500: read failed.\n");
674 (void)mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_FALSE);
675 (void)mpu6500_deinit(&gs_handle);
676
677 return 1;
678 }
679
680 /* output data */
681 mpu6500_interface_debug_print("mpu6500: fifo %d.\n", gs_len);
682 mpu6500_interface_debug_print("mpu6500: acc x[0] is %0.2fg.\n", gs_accel_g[0][0]);
683 mpu6500_interface_debug_print("mpu6500: acc y[0] is %0.2fg.\n", gs_accel_g[0][1]);
684 mpu6500_interface_debug_print("mpu6500: acc z[0] is %0.2fg.\n", gs_accel_g[0][2]);
685 mpu6500_interface_debug_print("mpu6500: gyro x[0] is %0.2fdps.\n", gs_gyro_dps[0][0]);
686 mpu6500_interface_debug_print("mpu6500: gyro y[0] is %0.2fdps.\n", gs_gyro_dps[0][1]);
687 mpu6500_interface_debug_print("mpu6500: gyro z[0] is %0.2fdps.\n", gs_gyro_dps[0][2]);
688
689 /* delay 500 ms */
691 }
692
693 /* finish fifo test */
694 mpu6500_interface_debug_print("mpu6500: finish fifo test.\n");
695 (void)mpu6500_set_fifo(&gs_handle, MPU6500_BOOL_FALSE);
696 (void)mpu6500_deinit(&gs_handle);
697
698 return 0;
699}
driver mpu6500 fifo test header file
uint8_t mpu6500_set_ptat(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the temperature sensor
uint8_t mpu6500_set_accelerometer_choice(mpu6500_handle_t *handle, uint8_t choice)
set the accelerometer choice
uint8_t mpu6500_set_interface(mpu6500_handle_t *handle, mpu6500_interface_t interface)
set the chip interface
mpu6500_address_t
mpu6500 address enumeration definition
uint8_t mpu6500_set_gyro_standby(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the gyro standby
struct mpu6500_info_s mpu6500_info_t
mpu6500 information structure definition
uint8_t mpu6500_set_addr_pin(mpu6500_handle_t *handle, mpu6500_address_t addr_pin)
set the chip address pin
uint8_t mpu6500_set_iic_bypass(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic bypass
uint8_t mpu6500_force_fifo_reset(mpu6500_handle_t *handle)
force reset the fifo
uint8_t mpu6500_set_accel_compare_with_previous_sample(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable accel compare with previous sample
uint8_t mpu6500_set_fifo(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable fifo
uint8_t mpu6500_set_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the interrupt level
uint8_t mpu6500_set_fsync_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the fsync interrupt level
uint8_t mpu6500_read(mpu6500_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], uint16_t *len)
read the data
struct mpu6500_handle_s mpu6500_handle_t
mpu6500 handle structure definition
uint8_t mpu6500_set_gyroscope_choice(mpu6500_handle_t *handle, uint8_t choice)
set the gyroscope choice
uint8_t mpu6500_set_fsync_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the fsync interrupt
uint8_t mpu6500_set_sleep(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the sleep mode
uint8_t mpu6500_set_interrupt_latch(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt latch
uint8_t mpu6500_set_gyroscope_range(mpu6500_handle_t *handle, mpu6500_gyroscope_range_t range)
set the gyroscope range
uint8_t mpu6500_info(mpu6500_info_t *info)
get the chip's information
uint8_t mpu6500_set_clock_source(mpu6500_handle_t *handle, mpu6500_clock_source_t clock_source)
set the chip clock source
uint8_t mpu6500_set_wake_on_motion(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable wake on motion
uint8_t mpu6500_set_interrupt_read_clear(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt reading clear
uint8_t mpu6500_set_interrupt(mpu6500_handle_t *handle, mpu6500_interrupt_t type, mpu6500_bool_t enable)
enable or disable the interrupt
uint8_t mpu6500_set_fifo_enable(mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t enable)
enable or disable the fifo function
uint8_t mpu6500_deinit(mpu6500_handle_t *handle)
close the chip
uint8_t mpu6500_set_low_pass_filter(mpu6500_handle_t *handle, mpu6500_low_pass_filter_t filter)
set the low pass filter
uint8_t mpu6500_irq_handler(mpu6500_handle_t *handle)
irq handler
uint8_t mpu6500_set_extern_sync(mpu6500_handle_t *handle, mpu6500_extern_sync_t sync)
set the extern sync type
uint8_t mpu6500_set_low_power_accel_output_rate(mpu6500_handle_t *handle, mpu6500_low_power_accel_output_rate_t rate)
set the low power accel output rate
uint8_t mpu6500_set_fifo_mode(mpu6500_handle_t *handle, mpu6500_fifo_mode mode)
set the fifo mode
uint8_t mpu6500_set_disable_iic_slave(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic slave mode
uint8_t mpu6500_set_iic_master(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic master mode
uint8_t mpu6500_set_cycle_wake_up(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the cycle wake up mode
uint8_t mpu6500_init(mpu6500_handle_t *handle)
initialize the chip
uint8_t mpu6500_set_accelerometer_range(mpu6500_handle_t *handle, mpu6500_accelerometer_range_t range)
set the accelerometer range
uint8_t mpu6500_set_accelerometer_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
set the accelerometer test
mpu6500_interface_t
mpu6500 interface enumeration definition
uint8_t mpu6500_set_fifo_1024kb(mpu6500_handle_t *handle)
set fifo 1024kb
uint8_t mpu6500_set_standby_mode(mpu6500_handle_t *handle, mpu6500_source_t source, mpu6500_bool_t enable)
set source into standby mode
uint8_t mpu6500_set_accelerometer_low_pass_filter(mpu6500_handle_t *handle, mpu6500_accelerometer_low_pass_filter_t filter)
set the accelerometer low pass filter
uint8_t mpu6500_set_interrupt_pin_type(mpu6500_handle_t *handle, mpu6500_pin_type_t type)
set the interrupt pin type
uint8_t mpu6500_set_gyroscope_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
set the gyroscope test
uint8_t mpu6500_set_sample_rate_divider(mpu6500_handle_t *handle, uint8_t d)
set the sample rate divider
@ MPU6500_ACCELEROMETER_LOW_PASS_FILTER_3
@ MPU6500_BOOL_FALSE
@ MPU6500_BOOL_TRUE
@ MPU6500_PIN_LEVEL_LOW
@ MPU6500_INTERRUPT_DATA_READY
@ MPU6500_INTERRUPT_FIFO_OVERFLOW
@ MPU6500_INTERRUPT_MOTION
@ MPU6500_INTERRUPT_FSYNC_INT
@ MPU6500_INTERRUPT_DMP
@ MPU6500_CLOCK_SOURCE_PLL
@ MPU6500_GYROSCOPE_RANGE_2000DPS
@ MPU6500_SOURCE_ACC_Y
@ MPU6500_SOURCE_GYRO_X
@ MPU6500_SOURCE_GYRO_Y
@ MPU6500_SOURCE_ACC_X
@ MPU6500_SOURCE_ACC_Z
@ MPU6500_SOURCE_GYRO_Z
@ MPU6500_AXIS_Y
@ MPU6500_AXIS_Z
@ MPU6500_AXIS_X
@ MPU6500_FIFO_MODE_NORMAL
@ MPU6500_EXTERN_SYNC_INPUT_DISABLED
@ MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_62P50
@ MPU6500_FIFO_TEMP
@ MPU6500_FIFO_YG
@ MPU6500_FIFO_ZG
@ MPU6500_FIFO_ACCEL
@ MPU6500_FIFO_XG
@ MPU6500_ACCELEROMETER_RANGE_2G
@ MPU6500_PIN_TYPE_PUSH_PULL
@ MPU6500_INTERFACE_SPI
@ MPU6500_LOW_PASS_FILTER_3
uint8_t mpu6500_interface_spi_deinit(void)
interface spi bus deinit
void mpu6500_interface_delay_ms(uint32_t ms)
interface delay ms
void mpu6500_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t mpu6500_interface_iic_init(void)
interface iic bus init
uint8_t mpu6500_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t mpu6500_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mpu6500_interface_spi_init(void)
interface spi bus init
uint8_t mpu6500_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void mpu6500_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t mpu6500_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t mpu6500_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t mpu6500_fifo_test_irq_handler(void)
fifo test irq
uint8_t mpu6500_fifo_test(mpu6500_interface_t interface, mpu6500_address_t addr, uint32_t times)
fifo test
uint32_t driver_version
char manufacturer_name[32]