31 #define TM_MPU6050_H 100
79 #include "stm32f4xx.h"
80 #include "stm32f4xx_rcc.h"
81 #include "stm32f4xx_gpio.h"
82 #include "stm32f4xx_i2c.h"
84 #include "tm_stm32f4_i2c.h"
94 #define MPU6050_I2C I2C3
95 #define MPU6050_I2C_PINSPACK TM_I2C_PinsPack_1
99 #ifndef MPU6050_I2C_CLOCK
100 #define MPU6050_I2C_CLOCK 400000
104 #define MPU6050_I2C_ADDR 0xD0
107 #define MPU6050_I_AM 0x68
110 #define MPU6050_AUX_VDDIO 0x01
111 #define MPU6050_SMPLRT_DIV 0x19
112 #define MPU6050_CONFIG 0x1A
113 #define MPU6050_GYRO_CONFIG 0x1B
114 #define MPU6050_ACCEL_CONFIG 0x1C
115 #define MPU6050_MOTION_THRESH 0x1F
116 #define MPU6050_INT_PIN_CFG 0x37
117 #define MPU6050_INT_ENABLE 0x38
118 #define MPU6050_INT_STATUS 0x3A
119 #define MPU6050_ACCEL_XOUT_H 0x3B
120 #define MPU6050_ACCEL_XOUT_L 0x3C
121 #define MPU6050_ACCEL_YOUT_H 0x3D
122 #define MPU6050_ACCEL_YOUT_L 0x3E
123 #define MPU6050_ACCEL_ZOUT_H 0x3F
124 #define MPU6050_ACCEL_ZOUT_L 0x40
125 #define MPU6050_TEMP_OUT_H 0x41
126 #define MPU6050_TEMP_OUT_L 0x42
127 #define MPU6050_GYRO_XOUT_H 0x43
128 #define MPU6050_GYRO_XOUT_L 0x44
129 #define MPU6050_GYRO_YOUT_H 0x45
130 #define MPU6050_GYRO_YOUT_L 0x46
131 #define MPU6050_GYRO_ZOUT_H 0x47
132 #define MPU6050_GYRO_ZOUT_L 0x48
133 #define MPU6050_MOT_DETECT_STATUS 0x61
134 #define MPU6050_SIGNAL_PATH_RESET 0x68
135 #define MPU6050_MOT_DETECT_CTRL 0x69
136 #define MPU6050_USER_CTRL 0x6A
137 #define MPU6050_PWR_MGMT_1 0x6B
138 #define MPU6050_PWR_MGMT_2 0x6C
139 #define MPU6050_FIFO_COUNTH 0x72
140 #define MPU6050_FIFO_COUNTL 0x73
141 #define MPU6050_FIFO_R_W 0x74
142 #define MPU6050_WHO_AM_I 0x75
145 #define MPU6050_GYRO_SENS_250 ((float) 131)
146 #define MPU6050_GYRO_SENS_500 ((float) 65.5)
147 #define MPU6050_GYRO_SENS_1000 ((float) 32.8)
148 #define MPU6050_GYRO_SENS_2000 ((float) 16.4)
151 #define MPU6050_ACCE_SENS_2 ((float) 16384)
152 #define MPU6050_ACCE_SENS_4 ((float) 8192)
153 #define MPU6050_ACCE_SENS_8 ((float) 4096)
154 #define MPU6050_ACCE_SENS_16 ((float) 2048)
TM_MPU6050_Gyroscope_t
Parameters for gyroscope range.
Definition: tm_stm32f4_mpu6050.h:197
TM_MPU6050_Accelerometer_t
Parameters for accelerometer range.
Definition: tm_stm32f4_mpu6050.h:187
TM_MPU6050_Result_t
MPU6050 result enumeration.
Definition: tm_stm32f4_mpu6050.h:178
Definition: tm_stm32f4_mpu6050.h:189
Definition: tm_stm32f4_mpu6050.h:179
TM_MPU6050_Result_t TM_MPU6050_ReadGyroscope(TM_MPU6050_t *DataStruct)
Reads gyroscope data from sensor.
Definition: tm_stm32f4_mpu6050.h:198
uint8_t Address
Definition: tm_stm32f4_mpu6050.h:209
int16_t Gyroscope_Y
Definition: tm_stm32f4_mpu6050.h:217
int16_t Accelerometer_Y
Definition: tm_stm32f4_mpu6050.h:214
Definition: tm_stm32f4_mpu6050.h:201
Definition: tm_stm32f4_mpu6050.h:171
TM_MPU6050_Result_t TM_MPU6050_ReadAll(TM_MPU6050_t *DataStruct)
Reads accelerometer, gyroscope and temperature data from sensor.
Definition: tm_stm32f4_mpu6050.h:199
Definition: tm_stm32f4_mpu6050.h:180
int16_t Accelerometer_X
Definition: tm_stm32f4_mpu6050.h:213
Definition: tm_stm32f4_mpu6050.h:188
TM_MPU6050_Device_t
MPU6050 can have 2 different slave addresses, depends on it's input AD0 pin This feature allows you t...
Definition: tm_stm32f4_mpu6050.h:170
Definition: tm_stm32f4_mpu6050.h:172
TM_MPU6050_Result_t TM_MPU6050_Init(TM_MPU6050_t *DataStruct, TM_MPU6050_Device_t DeviceNumber, TM_MPU6050_Accelerometer_t AccelerometerSensitivity, TM_MPU6050_Gyroscope_t GyroscopeSensitivity)
Initializes MPU6050 and I2C peripheral.
Definition: tm_stm32f4_mpu6050.h:181
int16_t Accelerometer_Z
Definition: tm_stm32f4_mpu6050.h:215
float Temperature
Definition: tm_stm32f4_mpu6050.h:219
Definition: tm_stm32f4_mpu6050.h:191
Main MPU6050 structure.
Definition: tm_stm32f4_mpu6050.h:207
int16_t Gyroscope_X
Definition: tm_stm32f4_mpu6050.h:216
TM_MPU6050_Result_t TM_MPU6050_ReadAccelerometer(TM_MPU6050_t *DataStruct)
Reads accelerometer data from sensor.
Definition: tm_stm32f4_mpu6050.h:200
int16_t Gyroscope_Z
Definition: tm_stm32f4_mpu6050.h:218
float Acce_Mult
Definition: tm_stm32f4_mpu6050.h:211
Definition: tm_stm32f4_mpu6050.h:190
TM_MPU6050_Result_t TM_MPU6050_ReadTemperature(TM_MPU6050_t *DataStruct)
Reads temperature data from sensor.
float Gyro_Mult
Definition: tm_stm32f4_mpu6050.h:210