From 480027f60bc3182cac3d20e2bfb0bb8f0ba54567 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 10 Nov 2013 09:25:55 +0000 Subject: [PATCH] Fixed I2C driver 10 bits mode. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6425 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/STM32/I2Cv1/i2c_lld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/hal/platforms/STM32/I2Cv1/i2c_lld.c b/os/hal/platforms/STM32/I2Cv1/i2c_lld.c index e882160fe..2a36776f2 100644 --- a/os/hal/platforms/STM32/I2Cv1/i2c_lld.c +++ b/os/hal/platforms/STM32/I2Cv1/i2c_lld.c @@ -302,7 +302,7 @@ static void i2c_lld_serve_event_interrupt(I2CDriver *i2cp) { case I2C_EV5_MASTER_MODE_SELECT: if ((i2cp->addr >> 8) > 0) { /* 10-bit address: 1 1 1 1 0 X X R/W */ - dp->DR = 0xF0 | (0x1 & i2cp->addr) | (0x3 & (i2cp->addr >> 9)); + dp->DR = 0xF0 | (0x6 & (i2cp->addr >> 8)) | (0x1 & i2cp->addr); } else { dp->DR = i2cp->addr; }