diff options
Diffstat (limited to 'testhal/STM32F1xx/I2C/lis3.c')
-rw-r--r-- | testhal/STM32F1xx/I2C/lis3.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/testhal/STM32F1xx/I2C/lis3.c b/testhal/STM32F1xx/I2C/lis3.c index 401f56199..0cd42a02f 100644 --- a/testhal/STM32F1xx/I2C/lis3.c +++ b/testhal/STM32F1xx/I2C/lis3.c @@ -18,8 +18,8 @@ /* buffers */
-static i2cblock_t accel_rx_data[ACCEL_RX_DEPTH];
-static i2cblock_t accel_tx_data[ACCEL_TX_DEPTH];
+static uint8_t accel_rx_data[ACCEL_RX_DEPTH];
+static uint8_t accel_tx_data[ACCEL_TX_DEPTH];
static int16_t acceleration_x = 0;
static int16_t acceleration_y = 0;
@@ -42,8 +42,8 @@ static void i2c_lis3_cb(I2CDriver *i2cp, const I2CSlaveConfig *i2cscfg){ /* Accelerometer lis3lv02dq config */
static const I2CSlaveConfig lis3 = {
- i2c_lis3_cb,
- i2c_lis3_error_cb,
+ i2c_lis3_cb,
+ i2c_lis3_error_cb,
};
@@ -58,7 +58,9 @@ int init_lis3(void){ accel_tx_data[3] = 0b00000000;
/* sending */
+ i2cAcquireBus(&I2CD1);
i2cMasterTransmit(&I2CD1, &lis3, lis3_addr, accel_tx_data, 4, accel_rx_data, 0);
+ i2cReleaseBus(&I2CD1);
return 0;
}
@@ -67,9 +69,9 @@ int init_lis3(void){ */
void request_acceleration_data(void){
accel_tx_data[0] = ACCEL_OUT_DATA | AUTO_INCREMENT_BIT; // register address
- //i2cAcquireBus(&I2CD1);
+ i2cAcquireBus(&I2CD1);
i2cMasterTransmit(&I2CD1, &lis3, lis3_addr, accel_tx_data, 1, accel_rx_data, 6);
- //i2cReleaseBus(&I2CD1);
+ i2cReleaseBus(&I2CD1);
acceleration_x = accel_rx_data[0] + (accel_rx_data[1] << 8);
acceleration_y = accel_rx_data[2] + (accel_rx_data[3] << 8);
|