1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00

Add MPU9150 support to STMF3Discovery. Use 7-bit I2C addressing on

STM32F30x.
This commit is contained in:
Dominic Clifton 2014-12-24 21:06:24 +00:00
parent 5e573c4071
commit e9c07675be
4 changed files with 20 additions and 5 deletions

View file

@ -414,6 +414,9 @@ STM32F3DISCOVERY_SRC = $(STM32F3DISCOVERY_COMMON_SRC) \
drivers/accgyro_mpu3050.c \ drivers/accgyro_mpu3050.c \
drivers/accgyro_mpu6050.c \ drivers/accgyro_mpu6050.c \
drivers/accgyro_l3g4200d.c \ drivers/accgyro_l3g4200d.c \
drivers/accgyro_mpu9150.c \
drivers/barometer_ms5611.c \
drivers/compass_ak8975.c \
$(HIGHEND_SRC) \ $(HIGHEND_SRC) \
$(COMMON_SRC) $(COMMON_SRC)

View file

@ -33,10 +33,10 @@
extern int16_t debug[4]; extern int16_t debug[4];
// Address // Addresses (7 bit address format)
#define LSM303DLHC_ACCEL_ADDRESS 0x32 #define LSM303DLHC_ACCEL_ADDRESS 0x19
#define LSM303DLHC_MAG_ADDRESS 0x3C #define LSM303DLHC_MAG_ADDRESS 0x1E
// Registers // Registers

View file

@ -101,7 +101,7 @@ void i2cInitPort(I2C_TypeDef *I2Cx)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = I2C1_SCL_PIN; GPIO_InitStructure.GPIO_Pin = I2C1_SCL_PIN;
@ -197,6 +197,8 @@ uint16_t i2cGetErrorCounter(void)
bool i2cWrite(uint8_t addr_, uint8_t reg, uint8_t data) bool i2cWrite(uint8_t addr_, uint8_t reg, uint8_t data)
{ {
addr_ <<= 1;
/* Test on BUSY Flag */ /* Test on BUSY Flag */
i2cTimeout = I2C_LONG_TIMEOUT; i2cTimeout = I2C_LONG_TIMEOUT;
while (I2C_GetFlagStatus(I2Cx, I2C_ISR_BUSY) != RESET) { while (I2C_GetFlagStatus(I2Cx, I2C_ISR_BUSY) != RESET) {
@ -258,6 +260,8 @@ bool i2cWrite(uint8_t addr_, uint8_t reg, uint8_t data)
bool i2cRead(uint8_t addr_, uint8_t reg, uint8_t len, uint8_t* buf) bool i2cRead(uint8_t addr_, uint8_t reg, uint8_t len, uint8_t* buf)
{ {
addr_ <<= 1;
/* Test on BUSY Flag */ /* Test on BUSY Flag */
i2cTimeout = I2C_LONG_TIMEOUT; i2cTimeout = I2C_LONG_TIMEOUT;
while (I2C_GetFlagStatus(I2Cx, I2C_ISR_BUSY) != RESET) { while (I2C_GetFlagStatus(I2Cx, I2C_ISR_BUSY) != RESET) {

View file

@ -35,10 +35,18 @@
#define GYRO #define GYRO
#define USE_GYRO_L3GD20 #define USE_GYRO_L3GD20
#define USE_GYRO_MPU9150
#define ACC #define ACC
#define USE_ACC_MPU9150
#define USE_ACC_LSM303DLHC #define USE_ACC_LSM303DLHC
#define BARO
#define USE_BARO_MS5611
#define MAG
#define USE_MAG_AK8975
#define BEEPER #define BEEPER
#define LED0 #define LED0
#define LED1 #define LED1
@ -51,7 +59,7 @@
#define USE_I2C #define USE_I2C
#define I2C_DEVICE (I2CDEV_1) #define I2C_DEVICE (I2CDEV_1)
#define SENSORS_SET (SENSOR_ACC) #define SENSORS_SET (SENSOR_ACC | SENSOR_BARO | SENSOR_MAG)
#define GPS #define GPS
#define LED_STRIP #define LED_STRIP