MPU6500 Bare-Metal Driver
Public API reference for the MPU6500 driver
Loading...
Searching...
No Matches
mpu6500.c File Reference

MPU6500 IMU driver implementation. More...

#include "mpu6500.h"
#include <math.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
Include dependency graph for mpu6500.c:

Functions

int8_t MPU6500_Init (MPU6500_Config *config)
 Initialize the MPU6500 sensor.
 
int8_t MPU6500_SetAccelRange (MPU6500_Config *config, Accel_Range range)
 Set the accelerometer full-scale range.
 
int8_t MPU6500_SetRotationRange (MPU6500_Config *config, Gyro_Range range)
 Set the gyroscope full-scale range.
 
int8_t MPU6500_Read_Gyro_Data (MPU6500_Config *config, MPU6500_Gyro_Data *Gyro_Data)
 Read and process gyroscope data in a single blocking call.
 
int8_t MPU6500_Read_Accel_Data (MPU6500_Config *config, MPU6500_Accel_Data *Accel_Data)
 Read and process accelerometer data in a single blocking call.
 
int8_t MPU6500_Gyro_Calibration (MPU6500_Config *config, int8_t return_offset[3])
 Calibrate gyroscope zero-rate offsets.
 
int8_t MPU6500_Read_Gyro_DMA (MPU6500_Config *config, uint8_t raw_buf[6])
 Start a gyroscope I2C read into a caller-owned buffer.
 
int8_t MPU6500_Read_Accel_DMA (MPU6500_Config *config, uint8_t raw_buf[6])
 Start an accelerometer I2C read into a caller-owned buffer.
 
void MPU6500_Process_Gyro_DMA (MPU6500_Config *config, const uint8_t raw_buf[6], MPU6500_Gyro_Data *data)
 Process a completed gyroscope raw buffer into scaled output.
 
void MPU6500_Process_Accel_DMA (MPU6500_Config *config, const uint8_t raw_buf[6], MPU6500_Accel_Data *data)
 Process a completed accelerometer raw buffer into scaled output.
 

Detailed Description

MPU6500 IMU driver implementation.

Implements initialization, configuration, calibration, and data acquisition for the MPU6500 6-axis accelerometer/gyroscope. Supports both blocking and non-blocking (DMA) I2C through platform-supplied function pointers.

Author
Anthony Hua ... Rather SleepyPandas