From 72bf2ef45ea8e0a7076de55f3bb921ec35ca9449 Mon Sep 17 00:00:00 2001 From: Maximilian Stiefel Date: Tue, 3 Sep 2019 07:32:32 +0000 Subject: [PATCH] Update 'platform/i2c.c' --- platform/i2c.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/platform/i2c.c b/platform/i2c.c index 81e7f57..67d47e4 100644 --- a/platform/i2c.c +++ b/platform/i2c.c @@ -90,11 +90,14 @@ void i2cStartTransmission(I2C_TypeDef* I2Cx, uint8_t dir, uint8_t slave_addr) } } -void i2cWrite(I2C_TypeDef* I2Cx, uint8_t* data) +void i2cWrite(I2C_TypeDef* I2Cx, uint8_t* data, uint16_t len, uint32_t timeout) { - I2C_SendData(I2Cx, *data); - while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); - //while(!I2C_GetFlagStatus(I2Cx, I2C_FLAG_BTF)); + if(len-- >= 1) { + I2C_SendData(I2Cx, *data++); + } + while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED) && timeout) { + timeout--; + } } void i2cAckOn(I2C_TypeDef* I2Cx)