From cde5ef5bb707979a3cd1c1263f97ae2c477c8237 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Tue, 13 Dec 2016 19:05:49 -0700 Subject: [PATCH] Fix multibyte reads over i2c --- firmware/common/i2c_lpc.c | 20 +++++++++++++------- firmware/libopencm3 | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/firmware/common/i2c_lpc.c b/firmware/common/i2c_lpc.c index f7bf4393..607a1a0a 100644 --- a/firmware/common/i2c_lpc.c +++ b/firmware/common/i2c_lpc.c @@ -44,17 +44,23 @@ void i2c_lpc_transfer(i2c_bus_t* const bus, uint8_t* const data_rx, const size_t count_rx ) { const uint32_t port = (uint32_t)bus->obj; - i2c_tx_start(port); - i2c_tx_byte(port, (slave_address << 1) | I2C_WRITE); - for(size_t i=0; i 0)) { + i2c_tx_start(port); + i2c_tx_byte(port, (slave_address << 1) | I2C_WRITE); + for(i=0; i 0)) { i2c_tx_start(port); i2c_tx_byte(port, (slave_address << 1) | I2C_READ); - for(size_t i=0; i